# HG changeset patch # User Matt Mackall # Date 1244502884 18000 # Node ID f325574dad1ae0d417d561a39de81a762d3882d2 # Parent 9b3fd8ab3558cd9fc99950c455b9f53917a926be merge: combine a copy and move case diff -r 9b3fd8ab3558 -r f325574dad1a mercurial/merge.py --- a/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 +++ b/mercurial/merge.py Mon Jun 08 18:14:44 2009 -0500 @@ -199,11 +199,8 @@ if f2 not in m2: # directory rename act("remote renamed directory to " + f2, "d", f, None, f2, m1.flags(f)) - elif f2 in m1: # case 2 A,B/B/B - act("local copied to " + f2, "m", - f, f2, f, fmerge(f, f2, f2), False) - else: # case 4,21 A/B/B - act("local moved to " + f2, "m", + else: # case 2 A,B/B/B or case 4,21 A/B/B + act("local copied/moved to " + f2, "m", f, f2, f, fmerge(f, f2, f2), False) elif n[20:] == "a": # added, no remote act("remote deleted", "f", f) diff -r 9b3fd8ab3558 -r f325574dad1a tests/test-issue672.out --- a/tests/test-issue672.out Mon Jun 08 18:14:44 2009 -0500 +++ b/tests/test-issue672.out Mon Jun 08 18:14:44 2009 -0500 @@ -29,7 +29,7 @@ all copies found (* = to merge, ! = divergent): 1a -> 1 * checking for directory renames - 1a: local moved to 1 -> m + 1a: local copied/moved to 1 -> m preserving 1a for resolve of 1a picked tool 'internal:merge' for 1a (binary False symlink False) merging 1a and 1 to 1a diff -r 9b3fd8ab3558 -r f325574dad1a tests/test-rename-merge2.out --- a/tests/test-rename-merge2.out Mon Jun 08 18:14:44 2009 -0500 +++ b/tests/test-rename-merge2.out Mon Jun 08 18:14:44 2009 -0500 @@ -44,7 +44,7 @@ b -> a * checking for directory renames a: remote is newer -> g - b: local copied to a -> m + b: local copied/moved to a -> m rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev @@ -109,7 +109,7 @@ all copies found (* = to merge, ! = divergent): b -> a * checking for directory renames - b: local moved to a -> m + b: local copied/moved to a -> m rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev @@ -546,7 +546,7 @@ all copies found (* = to merge, ! = divergent): b -> a * checking for directory renames - b: local moved to a -> m + b: local copied/moved to a -> m rev: versions differ -> m preserving b for resolve of b preserving rev for resolve of rev @@ -578,7 +578,7 @@ all copies found (* = to merge, ! = divergent): b -> a * checking for directory renames - b: local moved to a -> m + b: local copied/moved to a -> m rev: versions differ -> m c: remote created -> g preserving b for resolve of b