v0.9.0 — exact-content rename detection
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/.