merge: consider the file merged when using :merge-{local,other}
Returning `None` from `simplemerge()` means that the caller interprets
it as "no merge was necessary (because two sides matched)". See
6217040b2780 and issue2680 for some background. However,
`simplemerge()` shouldn't even get called in such scenarios, and
returning `None` means that the file is not considered merged, even
though the contents actually were. See the affected test cases.
Differential Revision: https://phab.mercurial-scm.org/D11999
--- a/mercurial/simplemerge.py Fri Jan 14 08:44:36 2022 -0800
+++ b/mercurial/simplemerge.py Fri Jan 14 09:28:44 2022 -0800
@@ -483,7 +483,7 @@
basetext = readctx(basectx)
othertext = readctx(otherctx)
except error.Abort:
- return 1
+ return True
m3 = Merge3Text(basetext, localtext, othertext)
conflicts = False
@@ -511,5 +511,4 @@
# mergestate.resolve())
localctx.write(mergedtext, localctx.flags())
- if conflicts:
- return 1
+ return conflicts
--- a/tests/test-annotate.t Fri Jan 14 08:44:36 2022 -0800
+++ b/tests/test-annotate.t Fri Jan 14 09:28:44 2022 -0800
@@ -886,7 +886,7 @@
created new head
$ hg merge --tool :merge-other 24
merging baz
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m 'merge forgetting about baz rewrite'
$ cat > baz << EOF
--- a/tests/test-conflict.t Fri Jan 14 08:44:36 2022 -0800
+++ b/tests/test-conflict.t Fri Jan 14 09:28:44 2022 -0800
@@ -404,7 +404,7 @@
1 other heads for branch "default"
$ hg merge --tool :merge-local
merging a
- 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat a
Start of file
--- a/tests/test-copies-chain-merge.t Fri Jan 14 08:44:36 2022 -0800
+++ b/tests/test-copies-chain-merge.t Fri Jan 14 09:28:44 2022 -0800
@@ -463,14 +463,14 @@
3 files updated, 0 files merged, 2 files removed, 0 files unresolved
$ hg merge 'desc("q-2")' --tool ':union'
merging v
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m "mPQm-0 $case_desc - one way"
$ hg up 'desc("q-2")'
2 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 'desc("p-2")' --tool ':union'
merging v
- 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m "mQPm-0 $case_desc - the other way"
created new head
@@ -626,14 +626,14 @@
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 'desc("g-1")' --tool :union
merging d
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m "mDGm-0 $case_desc - one way"
$ hg up 'desc("g-1")'
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
$ hg merge 'desc("d-2")' --tool :union
merging d
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ hg ci -m "mGDm-0 $case_desc - the other way"
created new head
--- a/tests/test-merge-internal-tools-pattern.t Fri Jan 14 08:44:36 2022 -0800
+++ b/tests/test-merge-internal-tools-pattern.t Fri Jan 14 09:28:44 2022 -0800
@@ -130,7 +130,7 @@
$ hg merge 3
merging f
- 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+ 0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
$ cat f