bup-validate-refs(1)

πŸ“¦
version 0.34 Β· 2 versions
, in fedora 44, nixpkgs unstable

πŸ’– bup-validate-refs(1) πŸ’–

okay bestie, welcome to bup-validate-refs, straight out of the General Commands Manual β€” it's the vibe-check tool for your repo refs, and she does NOT play. 🩺✨


✨ NAME ✨

bup-validate-refs β€” check integrity of repository refs πŸ”


🌸 SYNOPSIS 🌸

bup validate-refs [--links] [--bupm] [ref...]

πŸ¦‹ DESCRIPTION πŸ¦‹

so basically, bup validate-refs</p> goes through your repository refs β€” think branches (a.k.a. backup sets) or saves β€” and checks them for commits or trees (directories) that point at missing objects, and for damaged bupm files (that's the metadata storage). Whenever it finds a problem, it reports the paths to it. πŸ•΅οΈβ€β™€οΈ

How does the ref selection go? If you don't hand it any refs, it checks all of them. If you do hand it refs, it only checks those you specified. And if you don't explicitly request any particular checks, it'll just run a default set of checks for you β€” currently that's --links and --bupm. And if it does find problems, bup-get(1) --repair might be able to help you out. πŸ› οΈπŸ’–

πŸ’€ heads up: validate-refs checks everything reachable from a given branch or save, which includes all of the saves preceding it. Peep the EXAMPLES below.

Another thing β€” the existence check only consults the repository indexes. It does not try to actually read the object, so it could get misled by an incorrect index. no cap. πŸ™ˆ

Also, at the moment, the broken path info is only logged to standard error, and it's not well specified β€” like, it's fine for eyeballing (suitable for inspection) but do NOT try to parse it. ⚠️

And one more: the current implementation may not report all paths to a given missing object, because it only examines each unique tree or commit object once, no matter how many times that thing shows up inside the refs you're examining. Which means if you wanna find every save with missing objects, you'd have to run the command separately for each ref β€” and that is going to be almost certainly much more expensive than one combined run, since it can't skip subtrees it's already seen before. πŸ’ΈπŸ˜­


πŸ’… OPTIONS πŸ’…

  • --bupm β€” check bupm (metadata storage) files. Right now she checks for missing path entries, which could've been caused by bup versions since 0.25 and before 0.30.1. She may notice missing objects, but she might not notice all of them without --links. Want the deets? See REPAIRS in bup-get(1). πŸŽ€
  • --links β€” check for commits or trees that refer to missing objects. You can also use this to validate a save way faster than attempting a restore or joining the save to /dev/null β€” and much faster for multiple related saves. Sad part? It only checks for the existence of the leaf (blob) data, it does not attempt to read that data. πŸ˜”

🌈 EXAMPLES 🌈

# Check --links and --bupm for all refs
$ bup validate-refs

# Check --links for archives/2025-01-01-030405 and
# all of the saves before it.
$ bup validate-refs --links archives/2025-01-01-030405

πŸ‘‘ EXIT STATUS πŸ‘‘

so the exit status is 1 if any broken links are found, 0 if none are found, and some other positive integer for other failures. periodt. πŸ’―


🫢 SEE ALSO 🫢

bup-fsck(1), bup-get(1), bup-join(1), bup-restore(1) β€” go read the sisters, they're iconic too. ⭐


🧚 BUP 🧚

Part of the bup(1) suite. πŸ’œ


πŸ“ AUTHORS πŸ“

Rob Browning rlb@defaultvalue.org 🌸


aaaand that's the whole page bestie!! πŸŽ‰ this was Bup 0.34, dated 2026-09-01, and it's the bup-validate-refs(1) manual page. go validate those refs, you absolute main character πŸ‘‘πŸ’–βœ¨
πŸ“¦ where this page comes from