Development record
The rules root resolver's home exclusion compares path strings (root.go dir != home in the walk, top == home after it), so a HOME spelled as a case variant of the on-disk path (the home spelled with a lower-case first component where the case-insensitive APFS volume stores it capitalised) is not recognised: filepath.EvalSymlinks keeps the caller's case while git reports the on-disk case, and the version-controlled home is adopted as the repo root, its .abcd read a second time as the repo layer. Compare by file identity (os.Stat plus os.SameFile) through one helper at both sites.
The rules root resolver's home exclusion compares path strings (root.go dir != home in the walk, top == home after it), so a HOME spelled as a case variant of the on-disk path (the home spelled with a lower-case first component where the case-insensitive APFS volume stores it capitalised) is not recognised: filepath.EvalSymlinks keeps the caller's case while git reports the on-disk case, and the version-controlled home is adopted as the repo root, its .abcd read a second time as the repo layer. Compare by file identity (os.Stat plus os.SameFile) through one helper at both sites.
Grounds
- pursued: a HOME naming the home directory at any spelling is never adopted as the repo root, pinned by TestResolveRootNeverAdoptsTheHomeAtAnySpelling at both sites; a case-variant or symlinked HOME resolving to the home as Root on a case-insensitive volume would show it wrong
Frontmatter
| id | iss-2609261753285273 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2609261753285273-the-rules-root-resolver-s-home-exclusion.md
open on GitHub ↗ · commit history ↗