tests/test-rename-dir-merge.t
changeset 12112 d27d5ae576a2
parent 8167 6c82beaaa11a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-rename-dir-merge.t	Mon Aug 30 13:49:40 2010 +0900
@@ -0,0 +1,115 @@
+  $ mkdir t
+  $ cd t
+  $ hg init
+
+  $ mkdir a
+  $ echo foo > a/a
+  $ echo bar > a/b
+  $ hg ci -Am "0"
+  adding a/a
+  adding a/b
+
+  $ hg co -C 0
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg mv a b
+  moving a/a to b/a
+  moving a/b to b/b
+  $ hg ci -m "1 mv a/ b/"
+
+  $ hg co -C 0
+  2 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  $ echo baz > a/c
+  $ echo quux > a/d
+  $ hg add a/c
+  $ hg ci -m "2 add a/c"
+  created new head
+
+  $ hg merge --debug 1
+    searching for copies back to rev 1
+    unmatched files in local:
+     a/c
+     a/d
+    unmatched files in other:
+     b/a
+     b/b
+    all copies found (* = to merge, ! = divergent):
+     b/a -> a/a 
+     b/b -> a/b 
+    checking for directory renames
+    dir a/ -> b/
+    file a/c -> b/c
+    file a/d -> b/d
+  resolving manifests
+   overwrite None partial False
+   ancestor f9b20c0d4c51 local ce36d17b18fb+ remote 397f8b00a740
+   a/d: remote renamed directory to b/d -> d
+   a/c: remote renamed directory to b/c -> d
+   a/b: other deleted -> r
+   a/a: other deleted -> r
+   b/a: remote created -> g
+   b/b: remote created -> g
+  updating: a/a 1/6 files (16.67%)
+  removing a/a
+  updating: a/b 2/6 files (33.33%)
+  removing a/b
+  updating: a/c 3/6 files (50.00%)
+  moving a/c to b/c
+  updating: a/d 4/6 files (66.67%)
+  moving a/d to b/d
+  updating: b/a 5/6 files (83.33%)
+  getting b/a
+  updating: b/b 6/6 files (100.00%)
+  getting b/b
+  4 files updated, 0 files merged, 2 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+  $ echo a/* b/*
+  a/* b/a b/b b/c b/d
+  $ hg st -C
+  M b/a
+  M b/b
+  A b/c
+    a/c
+  R a/a
+  R a/b
+  R a/c
+  ? b/d
+  $ hg ci -m "3 merge 2+1"
+  $ hg debugrename b/c
+  b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88
+
+  $ hg co -C 1
+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
+  $ hg merge --debug 2
+    searching for copies back to rev 1
+    unmatched files in local:
+     b/a
+     b/b
+     b/d
+    unmatched files in other:
+     a/c
+    all copies found (* = to merge, ! = divergent):
+     b/a -> a/a 
+     b/b -> a/b 
+    checking for directory renames
+    dir a/ -> b/
+    file a/c -> b/c
+  resolving manifests
+   overwrite None partial False
+   ancestor f9b20c0d4c51 local 397f8b00a740+ remote ce36d17b18fb
+   None: local renamed directory to b/c -> d
+  updating:None 1/1 files (100.00%)
+  getting a/c to b/c
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  (branch merge, don't forget to commit)
+
+  $ echo a/* b/*
+  a/* b/a b/b b/c b/d
+  $ hg st -C
+  A b/c
+    a/c
+  ? b/d
+  $ hg ci -m "4 merge 1+2"
+  created new head
+  $ hg debugrename b/c
+  b/c renamed from a/c:354ae8da6e890359ef49ade27b68bbc361f3ca88