Skip to content

v0.9.0 — exact-content rename detection

Choose a tag to compare

@VectorSophie VectorSophie released this 13 Sep 08:58
· 74 commits to main since this release

ADR 0009: exact-content rename detection, closing a gap ADR 0004
explicitly deferred.

  • Tree.HC gains TreeFindEntryByHash (content-addressed counterpart
    to the existing by-name TreeFindEntry).
  • Offer.HC's per-file loop tries it whenever a by-name lookup against
    the parent tree fails, carrying the old entity ID forward on a
    content-hash match instead of generating a fresh one.
  • Verified with a real rename (identical entity ID bed2cffaf4e6391c
    carried across two hgit see calls) and a real negative case (a
    genuinely different file correctly gets a fresh ID,
    661281709c60602e, despite an old entry existing under another
    name).
  • Exact-content matching only - same scope as Git's own
    100%-similarity rename detection.
  • packaging/HgitAll.HC, 135,997 bytes, tools/lint-package.sh clean.

See docs/adr/0009-rename-detection.md and
experiments/70-rename-detection/.