[[!comment format=mdwn
 username="kyle"
 avatar="http://cdn.libravatar.org/avatar/7d6e85cde1422ad60607c87fa87c63f3"
 subject="re: git 2.34: some conflict resolution unit tests fail"
 date="2021-11-21T21:41:36Z"
 content="""
I see similar failures on GNU/Linux with Git 2.34.

```
$ git version
git version 2.34.0
$ git annex version | grep version:
git-annex version: 8.20211118-ga0e9a059a

$ git annex test -p 'conflict resolution '
Tests
  Unit Tests v8 adjusted unlocked branch
    conflict resolution (adjusted branch):                Init Tests
  init: OK (0.12s)
  add:  OK (0.42s)

All 2 tests passed (0.54s)
OK (2.30s)
    conflict resolution movein regression:                OK (2.18s)
    conflict resolution (mixed directory and file):       FAIL (1.71s)
      Test.hs:1378:
      r1 conflictor variant file missing in: [\".\",\"..\",\"conflictor~HEAD.variant-cc12\",\"conflictor\",\"sha1foo\",\"foo\",\"bar.c\",\".git\"]
      Use -p '/conflict resolution /&&/Unit Tests v8 adjusted unlocked branch.conflict resolution (mixed directory and file)/' to rerun this test only.
    conflict resolution symlink bit:                      OK
[... 206 lines ...]
    conflict resolution (mixed locked and unlocked file): FAIL (1.51s)
      Test.hs:1611:
      r1 not exactly 0 variant files in: [\".\",\"..\",\"conflictor.variant-cc12\",\"conflictor~refs_remotes_r2_master.variant-cc12\",\"conflictor\",\"sha1foo\",\"foo\",\"bar.c\",\".git\"]
      Use -p '/conflict resolution /&&/Unit Tests v8 locked.conflict resolution (mixed locked and unlocked file)/' to rerun this test only.

8 out of 27 tests failed (53.21s)
  (Failures above could be due to a bug in git-annex, or an incompatibility
   with utilities, such as git, installed on this system.)
```

> Presumably this is due to the new ort merge strategy that has been
> made default in this new release of git.

Yes, that looks to be it.  The above failure goes away if I force
git-annex to merge with the old recursive strategy:

[[!format diff \"\"\"

diff --git a/Git/Merge.hs b/Git/Merge.hs
index b88d9a00f..c50672a3d 100644
--- a/Git/Merge.hs
+++ b/Git/Merge.hs
@@ -39,7 +39,8 @@ merge' extraparams branch mergeconfig commitmode r
 		go [Param $ fromRef branch]
 	| otherwise = go [Param \"--no-edit\", Param $ fromRef branch]
   where
-	go ps = merge'' (sp ++ [Param \"merge\"] ++ qp ++ ps ++ extraparams) mergeconfig r
+	go ps = merge'' (sp ++ [Param \"merge\"] ++ [Param \"-srecursive\"] ++
+			 qp ++ ps ++ extraparams) mergeconfig r
 	sp
 		| commitmode == AutomaticCommit =
 			[Param \"-c\", Param \"commit.gpgsign=false\"]

\"\"\"]]

```
$ git version
git version 2.34.0
$ git annex version | grep version:
git-annex version: 8.20211118-g30580a4e7

$ git annex test -p 'conflict resolution '
Tests
  Unit Tests v8 adjusted unlocked branch
    conflict resolution (adjusted branch):                Init Tests
  init: OK (0.17s)
  add:  OK (0.41s)

All 2 tests passed (0.59s)
OK (2.18s)
    conflict resolution movein regression:                OK (2.24s)
[... 37 lines ...]
All 27 tests passed (67.12s)
```

"""]]
