OSTREE-CHECKOUT(1)

πŸ’– NAME πŸ’–

Okay so this is the ostree checkout page β€” manual name OSTREE CHECKOUT(1), same energy, we’re in the right place. ✨

ostree-checkout β€” check out a commit into a filesystem, bestie. That’s the whole job. πŸ’…

✨ SYNOPSIS ✨

ostree checkout [OPTIONS...] {COMMIT} [DESTINATION]

🌸 DESCRIPTION 🌸

Here’s the tea: ostree checkout checks out the given COMMIT into the filesystem under directory DESTINATION. If DESTINATION is not specified, then COMMIT will become the destination checkout target. Main character behavior, honestly. πŸ‘‘

If the COMMIT destination already exists, the command will error unless the --union option is selected. That’s the vibe check, so don’t get caught out. ⚠️

πŸŽ€ OPTIONS πŸŽ€

  • --user-mode, -U β€” Do not change file ownership or initialize extended attributes. We’re leaving those alone, periodt. 🫢
  • --subpath="PATH" β€” Checkout sub-directory PATH. Scope it to just that little corner. πŸ¦‹
  • --union β€” Keep existing directories and unchanged files, overwrite existing files. Merge energy, but make it filesystem. πŸ’«
  • --union-add β€” Keep existing directories and files. No overwrite drama. 🌸
  • --union-identical β€” Like --union, but error out if a file would be replaced with a different file. Add new files and directories, ignore identical files, and keep existing directories. Requires -H. (Yes, -H is required β€” iykyk.) πŸ”₯
  • --whiteouts β€” Process whiteout files (Docker style). Container-core. 🐳
  • --process-passthrough-whiteouts β€” Enable overlayfs whiteout extraction into 0:0 character devices. Overlayfs whiteouts are encoded inside ostree as .ostree-wh.filename and extracted as 0:0 character devices. This is useful to carry container storage embedded into ostree. Ngl, that’s a whole vibe. 🧚
  • --allow-noent β€” Do nothing if specified path does not exist. No path, no problem. πŸ™ˆ
  • --from-stdin β€” Process many checkouts from standard input. Bulk mode activated. πŸ’₯
  • --from-file="FILE" β€” Process many checkouts from input file. Same energy, file edition. πŸ“
  • --fsync="POLICY" β€” POLICY is a boolean which specifies whether fsync should be used or not. Default to true. Yes, true is the default β€” noted. βœ…
  • --require-hardlinks, -H β€” Do not fall back to full copies if hardlinking fails. Hardlinks or bust. πŸ”—
  • --force-copy-zerosized, -z β€” This option does nothing; the functionality is now always on by default. It’s giving placeholder flag. πŸ’€
  • --force-copy, -C β€” Never hardlink (but may reflink if available). Copy girl summer. πŸŽ€
  • --bareuseronly-dirs, -M β€” Suppress mode bits outside of 0775 for directories (suid, world writable, etc.). Lock it down, bestie. πŸ”’
  • --skip-list="FILE" β€” Skip checking out the absolute file paths listed in FILE, one per line. A little skip list, very organized. πŸ“
  • --selinux-policy β€” Set SELinux labels based on policy in root filesystem PATH (may be /). This implies --force-copy. SELinux girlies rise. πŸ›‘οΈ
  • --composefs β€” Only generate a composefs, not a directory. Composefs only, no directory. ✨
  • --composefs-noverity β€” Only generate a composefs, not a directory; fsverity digests will not be included. This is best used for "opportunistic" use of composefs. No fsverity digests in this one. 🌈

πŸ¦‹ EXAMPLE πŸ¦‹

Here’s the iconic little sequence:

$ ostree checkout my-branch

$ ls

            file1    file2    my-branch

And look at that β€” my-branch is right there next to file1 and file2. Slay. πŸ’–


That’s the whole OSTREE CHECKOUT(1) page, bestie. Footer source/version says OSTree, and there’s no date in this one β€” so no invented date, just the page and good vibes. πŸ«ΆπŸŽ€πŸ’–

πŸ“¦ where this page comes from