Development record
The check that refuses to delete a lane branch another checkout stands on (branchCheckedOutElsewhere, internal/core/implement/loop/land.go, used by the landing and both discards) compares branch names byte for byte. On a filesystem that folds case, macOS by default, git resolves a loose ref whatever case it is named in, so a run state naming build/Lane-1 reads and deletes the branch build/lane-1 with update-ref -d, while a worktree on build/lane-1 is not seen as standing on build/Lane-1 and its HEAD is left naming nothing. The same route exists without abcd: plain git branch -D build/Lane-1 deletes build/lane-1 from under a worktree, so under abcd-fixes-what-it-adds this is help only, offered because it changes nothing about how a repository works.
The check that refuses to delete a lane branch another checkout stands on (branchCheckedOutElsewhere, internal/core/implement/loop/land.go, used by the landing and both discards) compares branch names byte for byte. On a filesystem that folds case, macOS by default, git resolves a loose ref whatever case it is named in, so a run state naming build/Lane-1 reads and deletes the branch build/lane-1 with update-ref -d, while a worktree on build/lane-1 is not seen as standing on build/Lane-1 and its HEAD is left naming nothing. The same route exists without abcd: plain git branch -D build/Lane-1 deletes build/lane-1 from under a worktree, so under abcd-fixes-what-it-adds this is help only, offered because it changes nothing about how a repository works.
Grounds
- pursued: on a folding filesystem a discard or landing of a mis-cased lane branch refuses while another checkout stands on it; a deletion from under that checkout shows it wrong
Route
The route exists without abcd: on a case-folding filesystem, plain git branch -D build/Lane-1 deletes build/lane-1 from under the worktree that has it checked out (verified by the security review in a scratch repository, git 2.52.0). Under abcd-fixes-what-it-adds it is therefore not abcd's vulnerability; this is help, given because the comparison changes nothing about how the repository works.
Frontmatter
| id | iss-2610121209284195 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610121209284195-the-check-that-refuses-to-delete-a-lane.md
open on GitHub ↗ · commit history ↗