fix(merge): manual attribute strategy must not fire when l == r (false conflicts)
When both branches agree on a file — whether neither touched it (b == l == r) or both independently made the same edit (b != l == r) — the 'manual' strategy in .museattributes was incorrectly adding those paths to the conflict list.
Root cause: the l == r block in CodePlugin.merge() applied the manual override unconditionally ('even on clean paths'), producing false conflicts for every file matching a manual rule, regardless of whether either branch changed it.
Fix: remove the manual override from the l == r branch entirely. manual now only fires when at least one side diverged (elif b == l, elif b == r, or else).
Tests: 6 new tests in TestManualStrategyUnchangedFiles pin the exact semantics. Also fixes pre-existing TestMergeStateIO.test_write_and_read (sha256: prefix).
0 comments
muse hub commit comment sha256:eb3fbe2610a12e6d13e780e83ae465c948ed9bc9ca575208b64d0daa978886cd --body "your comment"
No comments yet. Be the first to start the discussion.