# HG changeset patch # User Matt Mackall # Date 1163871259 21600 # Node ID 9103dab960932c5b1337dc6dad361437ce9a84e9 # Parent eb0b4a2d70a9c650d22bad9df0772878af0ac4e0 avoid unnecessary copy merges diff -r eb0b4a2d70a9 -r 9103dab96093 mercurial/merge.py --- a/mercurial/merge.py Fri Nov 17 08:06:54 2006 +0100 +++ b/mercurial/merge.py Sat Nov 18 11:34:19 2006 -0600 @@ -139,6 +139,8 @@ ''' check if an apparent pair actually matches ''' c2 = ctx(f2, man[f2]) ca = c.ancestor(c2) + if c == ca or c2 == ca: + return if ca and ca.path() == c.path() or ca.path() == c2.path(): copy[c.path()] = f2 copy[f2] = c.path() diff -r eb0b4a2d70a9 -r 9103dab96093 tests/test-merge8.out --- a/tests/test-merge8.out Fri Nov 17 08:06:54 2006 +0100 +++ b/tests/test-merge8.out Sat Nov 18 11:34:19 2006 -0600 @@ -6,5 +6,4 @@ adding file changes added 2 changesets with 2 changes to 1 files (run 'hg update' to get a working copy) -merging a and b -0 files updated, 1 files merged, 0 files removed, 0 files unresolved +1 files updated, 0 files merged, 1 files removed, 0 files unresolved diff -r eb0b4a2d70a9 -r 9103dab96093 tests/test-rename-merge2.out --- a/tests/test-rename-merge2.out Fri Nov 17 08:06:54 2006 +0100 +++ b/tests/test-rename-merge2.out Sat Nov 18 11:34:19 2006 -0600 @@ -88,15 +88,14 @@ overwrite None partial False ancestor 924404dff337 local 94b33a1b7f2d+ remote 735846fee2d7 rev: versions differ -> m - a: remote copied -> m -copying a to b + b: remote created -> g +getting b merging rev my rev@94b33a1b7f2d+ other rev@735846fee2d7 ancestor rev@924404dff337 1 files updated, 1 files merged, 0 files removed, 0 files unresolved (branch merge, don't forget to commit) -------------- M b - a C a -------------- @@ -106,16 +105,14 @@ resolving manifests overwrite None partial False ancestor 924404dff337 local ac809aeed39a+ remote 97c705ade336 - b: local copied -> m rev: versions differ -> m merging rev my rev@ac809aeed39a+ other rev@97c705ade336 ancestor rev@924404dff337 -1 files updated, 1 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) -------------- -M b - a C a +C b -------------- -------------- @@ -124,17 +121,17 @@ resolving manifests overwrite None partial False ancestor 924404dff337 local 94b33a1b7f2d+ remote e03727d2d66b - a: remote moved -> m + a: other deleted -> r rev: versions differ -> m -copying a to b + b: remote created -> g removing a +getting b merging rev my rev@94b33a1b7f2d+ other rev@e03727d2d66b ancestor rev@924404dff337 -1 files updated, 1 files merged, 0 files removed, 0 files unresolved +1 files updated, 1 files merged, 1 files removed, 0 files unresolved (branch merge, don't forget to commit) -------------- M b - a -------------- -------------- @@ -143,15 +140,13 @@ resolving manifests overwrite None partial False ancestor 924404dff337 local ecf3cb2a4219+ remote 97c705ade336 - b: local moved -> m rev: versions differ -> m merging rev my rev@ecf3cb2a4219+ other rev@97c705ade336 ancestor rev@924404dff337 -1 files updated, 1 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) -------------- -M b - a +C b -------------- --------------