Development record
The sync merge fails on git older than 2.44 (Apple Git 2.39.5) when an attribute selects a merge driver: BuiltinMergeDriver, the merge-file command that replaces every repository merge driver (iss-2610090821510097), passes --diff-algorithm=histogram, which merge-file only accepts from git 2.44, so git merge exits 1 with "unknown option 'diff-algorithm=histogram'" even on a clean merge. The repository's driver still does not start and the merge.default case passes. Reported as GitHub issue #894, pinned at 3b8700ef7.
issueresolvedminoriss-2610111549593667
The sync merge fails on git older than 2.44 (Apple Git 2.39.5) when an attribute selects a merge driver: BuiltinMergeDriver, the merge-file command that replaces every repository merge driver (iss-2610090821510097), passes --diff-algorithm=histogram, which merge-file only accepts from git 2.44, so git merge exits 1 with "unknown option 'diff-algorithm=histogram'" even on a clean merge. The repository's driver still does not start and the merge.default case passes. Reported as GitHub issue #894, pinned at 3b8700ef7.
Grounds
- pursued: dropping the options only below 2.44 makes the merge work on older git without starting the repository's driver; a sync on old git that merges differently from git's own merge in a case that matters would show it wrong.
Frontmatter
| id | iss-2610111549593667 |
|---|---|
| type | issue |
| lifecycle | resolved |
| severity | minor |
.abcd/work/issues/resolved/iss-2610111549593667-the-sync-merge-fails-on-git-older-than-2.md
open on GitHub ↗ · commit history ↗
mentions1
- iss-2610090821510097The implement loop's lane sync merge (`git merge --no-ff` through `pickGit`) runs a repository-configured merge driver, which executes as the operator and writes the merge result git keeps, although the loop presents this merge as running no hook code.