merge: shortcircuit filemerge for identical files
- use filectx.cmp to compare files
- move merge messages into filemerge
- kill the redundant resolving message
- update tests
--- a/mercurial/merge.py Tue Oct 10 01:13:03 2006 -0500
+++ b/mercurial/merge.py Tue Oct 10 01:16:06 2006 -0500
@@ -32,6 +32,10 @@
fcm = wctx.filectx(fw)
fco = mctx.filectx(fo)
+
+ if not fco.cmp(fcm.data()): # files identical?
+ return 0
+
fca = fcm.ancestor(fco)
if not fca:
fca = repo.filectx(fw, fileid=-1)
@@ -39,7 +43,11 @@
b = temp("base", fca)
c = temp("other", fco)
- repo.ui.note(_("resolving %s\n") % fw)
+ if fw != fo:
+ repo.ui.status(_("merging %s and %s\n") % (fw, fo))
+ else:
+ repo.ui.status(_("merging %s\n") % fw)
+
repo.ui.debug(_("my %s other %s ancestor %s\n") % (fcm, fco, fca))
cmd = (os.environ.get("HGMERGE") or repo.ui.config("ui", "merge")
@@ -281,10 +289,6 @@
removed +=1
elif m == "m": # merge
f2, fd, flag, move = a[2:]
- if f != f2:
- repo.ui.status(_("merging %s and %s to %s\n") % (f, f2, fd))
- else:
- repo.ui.status(_("merging %s\n") % f)
if filemerge(repo, f, f2, wctx, mctx):
unresolved += 1
else:
--- a/tests/test-filebranch.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-filebranch.out Tue Oct 10 01:16:06 2006 -0500
@@ -19,7 +19,6 @@
resolving manifests
getting bar
merging foo
-resolving foo
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
we shouldn't have anything but foo in merge state here
--- a/tests/test-flags.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-flags.out Tue Oct 10 01:16:06 2006 -0500
@@ -44,7 +44,6 @@
resolving manifests
merging a
-resolving a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
-rwxr-x---
--- a/tests/test-merge-revert.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-merge-revert.out Tue Oct 10 01:16:06 2006 -0500
@@ -11,7 +11,6 @@
? file1.orig
016807e6fdaf tip
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-merging file1
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
? file1.orig
016807e6fdaf tip
--- a/tests/test-merge1.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-merge1.out Tue Oct 10 01:16:06 2006 -0500
@@ -1,7 +1,5 @@
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
%% no merges expected
-merging for b
-merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
0 files updated, 0 files merged, 1 files removed, 0 files unresolved
@@ -19,8 +17,6 @@
%% merge fails
abort: outstanding uncommitted changes
%% merge expected!
-merging for b
-merging b
0 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
1 files updated, 0 files merged, 0 files removed, 0 files unresolved
--- a/tests/test-merge7.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-merge7.out Tue Oct 10 01:16:06 2006 -0500
@@ -26,7 +26,6 @@
ancestor 451c744aabcc local a070d41e8360 remote faaea63e63a9
test.txt: versions differ -> m
merging test.txt
-resolving test.txt
my test.txt@. other test.txt@a070d41e8360 ancestor test.txt@faaea63e63a9
merging test.txt failed!
0 files updated, 0 files merged, 0 files removed, 1 files unresolved
--- a/tests/test-rename-merge1.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-rename-merge1.out Tue Oct 10 01:16:06 2006 -0500
@@ -6,8 +6,7 @@
ancestor f26ec4fc3fa3 local 8e765a822af2 remote af1939970a1c
a: remote moved -> m
b2: remote created -> g
-merging a and b to b
-resolving a
+merging a and b
my a@. other b@8e765a822af2 ancestor a@af1939970a1c
copying a to b
removing a
--- a/tests/test-rename-merge2.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-rename-merge2.out Tue Oct 10 01:16:06 2006 -0500
@@ -6,12 +6,10 @@
ancestor e300d1c794ec local 735846fee2d7 remote 924404dff337
rev: versions differ -> m
a: remote copied -> m
-merging a and b to b
-resolving a
+merging a and b
my a@. other b@735846fee2d7 ancestor a@924404dff337
copying a to b
merging rev
-resolving rev
my rev@. other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -31,11 +29,9 @@
b: local copied -> m
rev: versions differ -> m
getting a
-merging b and a to b
-resolving b
+merging b and a
my b@. other a@f4db7e329e71 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@f4db7e329e71 ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -53,13 +49,11 @@
ancestor e300d1c794ec local e03727d2d66b remote 924404dff337
a: remote moved -> m
rev: versions differ -> m
-merging a and b to b
-resolving a
+merging a and b
my a@. other b@e03727d2d66b ancestor a@924404dff337
copying a to b
removing a
merging rev
-resolving rev
my rev@. other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -76,11 +70,9 @@
ancestor ecf3cb2a4219 local f4db7e329e71 remote 924404dff337
b: local moved -> m
rev: versions differ -> m
-merging b and a to b
-resolving b
+merging b and a
my b@. other a@f4db7e329e71 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@f4db7e329e71 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -97,19 +89,15 @@
ancestor 94b33a1b7f2d local 735846fee2d7 remote 924404dff337
rev: versions differ -> m
a: remote copied -> m
-merging a and b to b
-resolving a
-my a@. other b@735846fee2d7 ancestor a@924404dff337
copying a to b
merging rev
-resolving rev
my rev@. other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--------------
-M a
M b
a
+C a
--------------
--------------
@@ -120,11 +108,7 @@
ancestor ac809aeed39a local 97c705ade336 remote 924404dff337
b: local copied -> m
rev: versions differ -> m
-merging b and a to b
-resolving b
-my b@. other a@97c705ade336 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@97c705ade336 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -142,13 +126,9 @@
ancestor 94b33a1b7f2d local e03727d2d66b remote 924404dff337
a: remote moved -> m
rev: versions differ -> m
-merging a and b to b
-resolving a
-my a@. other b@e03727d2d66b ancestor a@924404dff337
copying a to b
removing a
merging rev
-resolving rev
my rev@. other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -165,11 +145,7 @@
ancestor ecf3cb2a4219 local 97c705ade336 remote 924404dff337
b: local moved -> m
rev: versions differ -> m
-merging b and a to b
-resolving b
-my b@. other a@97c705ade336 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@97c705ade336 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -187,10 +163,8 @@
b: versions differ -> m
rev: versions differ -> m
merging b
-resolving b
my b@. other b@79cc6877a3b7 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@79cc6877a3b7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -208,7 +182,6 @@
c: remote created -> g
getting c
merging rev
-resolving rev
my rev@. other rev@e6abcc1a30c2 ancestor rev@924404dff337
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -226,10 +199,8 @@
b: versions differ -> m
rev: versions differ -> m
merging b
-resolving b
my b@. other b@af30c7647fc7 ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@af30c7647fc7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -249,10 +220,8 @@
rev: versions differ -> m
removing a
merging b
-resolving b
my b@. other b@e03727d2d66b ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -271,10 +240,8 @@
rev: versions differ -> m
getting a
merging b
-resolving b
my b@. other b@8dbce441892a ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -294,10 +261,8 @@
rev: versions differ -> m
removing a
merging b
-resolving b
my b@. other b@e03727d2d66b ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 1 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -316,10 +281,8 @@
rev: versions differ -> m
getting a
merging b
-resolving b
my b@. other b@8dbce441892a ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -337,10 +300,8 @@
b: versions differ -> m
rev: versions differ -> m
merging b
-resolving b
my b@. other b@735846fee2d7 ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@735846fee2d7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -360,10 +321,8 @@
a: prompt recreating -> g
getting a
merging b
-resolving b
my b@. other b@8dbce441892a ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@8dbce441892a ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -381,10 +340,8 @@
b: versions differ -> m
rev: versions differ -> m
merging b
-resolving b
my b@. other b@e03727d2d66b ancestor b@000000000000
merging rev
-resolving rev
my rev@. other rev@e03727d2d66b ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -401,13 +358,11 @@
ancestor e300d1c794ec local 79cc6877a3b7 remote 924404dff337
a: remote moved -> m
rev: versions differ -> m
-merging a and b to b
-resolving a
+merging a and b
my a@. other b@79cc6877a3b7 ancestor a@924404dff337
copying a to b
removing a
merging rev
-resolving rev
my rev@. other rev@79cc6877a3b7 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -424,11 +379,9 @@
ancestor ec03c2ca8642 local f4db7e329e71 remote 924404dff337
b: local moved -> m
rev: versions differ -> m
-merging b and a to b
-resolving b
+merging b and a
my b@. other a@f4db7e329e71 ancestor a@924404dff337
merging rev
-resolving rev
my rev@. other rev@f4db7e329e71 ancestor rev@924404dff337
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -446,12 +399,10 @@
b: local moved -> m
rev: versions differ -> m
c: remote created -> g
-merging b and a to b
-resolving b
+merging b and a
my b@. other a@2b958612230f ancestor a@924404dff337
getting c
merging rev
-resolving rev
my rev@. other rev@2b958612230f ancestor rev@924404dff337
1 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
--- a/tests/test-up-local-change.out Tue Oct 10 01:13:03 2006 -0500
+++ b/tests/test-up-local-change.out Tue Oct 10 01:16:06 2006 -0500
@@ -20,7 +20,6 @@
a: versions differ -> m
b: remote created -> g
merging a
-resolving a
my a@. other a@802f095af299 ancestor a@33aaa84a386b
getting b
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
@@ -54,7 +53,6 @@
a: versions differ -> m
b: remote created -> g
merging a
-resolving a
my a@. other a@802f095af299 ancestor a@33aaa84a386b
getting b
1 files updated, 1 files merged, 0 files removed, 0 files unresolved
@@ -105,10 +103,8 @@
a: versions differ -> m
b: versions differ -> m
merging a
-resolving a
my a@. other a@030602aee63d ancestor a@33aaa84a386b
merging b
-resolving b
my b@. other b@030602aee63d ancestor b@000000000000
0 files updated, 2 files merged, 0 files removed, 0 files unresolved
(branch merge, don't forget to commit)
@@ -137,5 +133,4 @@
adding manifests
adding file changes
added 1 changesets with 1 changes to 1 files
-merging a
0 files updated, 1 files merged, 0 files removed, 0 files unresolved