Skip to content

v0.11.0 — hgit check detects dangling/unreachable objects

Choose a tag to compare

@VectorSophie VectorSophie released this 13 Sep 09:31
· 85 commits to main since this release

hgit check now detects dangling/unreachable objects, closing the gap
Check.HC flagged since probe 69's referential-integrity pass.

  • CheckMarkReachable walks the real object graph (commit ->
    tree/parents/relation-target, tree -> blob children) from every
    declared path's own HEAD, reporting anything left unmarked as
    CHECK_DANGLING .
  • Verified with a real, naturally-occurring case: offering a file
    twice then undo-ing back one commit leaves that commit's own three
    unique objects genuinely unreachable (hgit's own non-destructive-
    history design keeps them stored, just no longer HEAD-reachable).
  • A real correctness bug was found and fixed testing against a
    long-lived repo: duplicate-content objects (the store never
    dedupes identical content across offers) were false-positive-
    reported dangling until a coalescing pass was added.
  • Regression (experiments/65-head-deletion's full command-surface
    test) re-run clean.
  • packaging/HgitAll.HC, 148,130 bytes, tools/lint-package.sh clean.

See experiments/72-check-dangling-objects/.