OSTREE-PULL(1)

πŸ¦‹ ostree pull β€” like, the ostree pull page, bestie πŸ¦‹

okay so you've stumbled into the manual page for ostree pull, part of the ostree manual, and honestly? it's giving "download data from a remote repository" energy and we're gonna get through it together πŸ’–


✨ SYNOPSIS ✨

ostree pull {REMOTE} [BRANCH]

that's it. that's the whole vibe check. REMOTE is required, BRANCH is optional, and the rest is just flags bestie πŸŽ€


πŸ’… OPTIONS πŸ’…

okay so here's the full list, no skipping, not even the "boring" ones (there are no boring ones, they're all icons actually):

  • --commit-metadata-only β€” fetch only the commit metadata. just the metadata. nothing else. that's the whole meal πŸ“
  • --cache-dir=DIR β€” use an alternate cache directory, and that directory is DIR. lowkey useful.
  • --disable-fsync β€” do no invoke fsync(). (yes, the original says "do no invoke", and we're keeping it, character for character, because that's what the page says 😭)
  • --localcache-repo β€” like git's clone --reference. reuse the provided OSTree repo as a local object cache when doing HTTP fetches. and here's the kicker: it may be specified multiple times πŸ‘‘
  • --untrusted β€” do not trust local sources; verify checksums and don't hardlink into source. trust issues but make it security πŸ”₯
  • --disable-static-deltas β€” do not use static deltas. periodt.
  • --mirror β€” write refs suitable for a mirror, i.e. refs are stored in the heads/ directory rather than the remotes/ directory. this makes the target repo suitable to be exported for other clients to pull from as an ostree remote. and: if no specific refs are specified, all refs will be fetched (the remote must have a summary file present). main character flag fr fr 🌈
  • --subpath=SUBPATH β€” only pull the provided subpath. just the one. be selective bestie πŸ’…
  • --depth=DEPTH β€” traverse DEPTH parents (-1=infinite) (default: 0). go up the family tree, or set it to -1 and go feral 🧚
  • --network-retries=N β€” specifies how many times each download should be retried upon error (default: 5). the comeback count πŸ’€
  • --disable-retry-on-network-errors β€” do not retry when network issues happen, instead fail automatically. (currently only affects libcurl) πŸ™ˆ
  • --low-speed-limit-bytes=N β€” the average transfer speed per second of a transfer during the time set via 'low-speed-time-seconds' for libcurl to abort (default: 1000)
  • --low-speed-time-seconds=N β€” the time in number seconds that the transfer speed should be below the 'low-speed-limit-bytes' setting for libcurl to abort (default: 30)
  • --max-outstanding-fetcher-requests=N β€” the max amount of concurrent connections allowed. (default: 8). eight besties pulling at once, slay 🫢
  • --disable-verify-bindings β€” disable verification of commit metadata bindings. ⚠️ this one's literally turning off a check, so, y'know, be aware.

🌸 DESCRIPTION 🌸

okay so without --mirror, this command will create new refs under the remotes/REMOTE/ directory for each pulled branch β€” unless they're already created, obviously. such refs can then be referenced by REMOTE:BRANCH in ostree subcommands (e.g. ostree log origin:exampleos/x86_64/standard). iykyk πŸŽ€

this command can retrieve just a specific commit, or go all the way to performing a full mirror of the remote repository. and if no BRANCH is specified, all configured branches are retrieved. all of them. the whole collection ✨

a special syntax in the @ character allows specifying a specific commit to retrieve from a branch. the use cases for this are somewhat similar to pulling a specific git tag; one could e.g. script a system upgrade to a known-good version, rather than the latest from the content provider. like pinning a vibe instead of chasing the timeline πŸ’–


πŸ”₯ EXAMPLE πŸ”₯

$ ostree --repo=repo pull --depth=-1 --mirror remote_name

perform a complete mirror of the remote. (this is likely most useful if your repository is also archive mode) πŸ‘‘

$ ostree --repo=repo pull remote_name exampleos/x86_64/standard

fetch the most recent commit to exampleos/x86_64/standard. the freshest one. the it-girl commit ⭐

$ ostree --repo=repo pull remote_name exampleos/x86_64/standard@98ea6e4f216f2fb4b69fff9b3a44842c38686ca685f3f55dc48c5d3fb1107be4

download the specific commit starting with 98ea6e as if it was the latest commit for exampleos/x86_64/standard. manifesting a specific commit into existence, iconic πŸ’œ


πŸ’‘ quick reminder bestie: --depth=-1 means infinite, and the default is 0. don't come for me, that's just what the page says πŸ¦‹

and that's the page!! sign-off time: this was OSTREE PULL(1) from the OSTree source, and like... go pull something beautiful 🌸 bye bestie!! πŸŽ€

πŸ“¦ where this page comes from