[PATCH] merge: add test with conflicting file and remote directory rename

Martin von Zweigbergk martinvonz at google.com
Wed Dec 3 18:06:45 UTC 2014


# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1417629684 28800
#      Wed Dec 03 10:01:24 2014 -0800
# Node ID 420f46b5d327725bda711cde95da34a47f0aec24
# Parent  fc76f55705eb5884707c977ecb756aee7c794676
merge: add test with conflicting file and remote directory rename

Changset 88629daa727b (merge: demonstrate that directory renames can
lose local file content, 2014-12-02) should clearly have added the
reverse version of the test: where the remote side renamed a
directory, added a new file in that directory, and the local directory
added a conflicting file in the source directory. Add such a test now,
and also touch up the ones already added slightly (e.g. 'local' was a
stupid value for content that can be on either side of a merge).

diff --git a/tests/test-rename-dir-merge.t b/tests/test-rename-dir-merge.t
--- a/tests/test-rename-dir-merge.t
+++ b/tests/test-rename-dir-merge.t
@@ -111,14 +111,16 @@
 BROKEN: the uncommitted file is overwritten; we should abort
 
   $ hg co -qC 1
-  $ echo local > b/c
+  $ echo target > b/c
   $ hg merge 2
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
-  $ hg st -C
+  $ hg st -A
   A b/c
     a/c
   ? a/d
+  C b/a
+  C b/b
   $ cat b/c
   baz
 
@@ -128,16 +130,45 @@
 BROKEN: the local file is overwritten; it should be merged
 
   $ hg co -qC 1
-  $ echo local > b/c
+  $ echo target > b/c
   $ hg add b/c
   $ hg commit -qm 'new file in target directory'
   $ hg merge 2
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
-  $ hg st -C
+  $ hg st -A
   A b/c
     a/c
   ? a/d
+  C b/a
+  C b/b
+  $ cat b/c
+  baz
+
+Remote directory rename with conflicting file added in remote target directory
+and committed in local source directory.
+
+BROKEN: the remote is ignored; it should be merged
+
+  $ hg co -qC 2
+  $ rm b/c
+  $ hg st -A
+  ? a/d
+  C a/a
+  C a/b
+  C a/c
+  $ hg merge 5
+  3 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+  $ hg st -A
+  M b/a
+  M b/b
+  A b/c
+    a/c
+  R a/a
+  R a/b
+  R a/c
+  ? a/d
   $ cat b/c
   baz
 


More information about the Mercurial-devel mailing list