tests: demonstrate how evolve loses transitive copies when interrupted
authorMartin von Zweigbergk <martinvonz@google.com>
Tue, 19 Nov 2019 14:24:31 -0800
changeset 5010 effce0a1f5bd
parent 5009 0ab3b94562ab
child 5011 04104042c6ad
tests: demonstrate how evolve loses transitive copies when interrupted Let's say `b` has been renamed to `c` in commit A and then renamed to `d` in commit B. We now modify A in a way that will cause a conflict when we evolve B. `hg evolve` will now stop and let the user resolve the conflicts, but it will have lost the copy information in the working copy (should still be c->d).
tests/test-evolve-continue.t
--- a/tests/test-evolve-continue.t	Mon Dec 09 10:36:11 2019 -0800
+++ b/tests/test-evolve-continue.t	Tue Nov 19 14:24:31 2019 -0800
@@ -434,3 +434,31 @@
   M c
   A d
   ? c.orig
+
+  $ cd ..
+  $ hg init transitive-renames
+  $ cd transitive-renames
+  $ echo 1 > a
+  $ echo 1 > b
+  $ hg ci -Aqm initial
+  $ echo 2 > a
+  $ hg mv b c
+  $ hg ci -m 'rename b to c'
+  $ echo 3 > a
+  $ hg mv c d
+  $ hg ci -m 'rename c to d'
+  $ hg prev -q
+  $ echo 2b > a
+  $ hg amend -q
+  1 new orphan changesets
+  $ hg ev -q
+  warning: conflicts while merging a! (edit, then use 'hg resolve --mark')
+  unresolved merge conflicts
+  (see 'hg help evolve.interrupted')
+  [1]
+BROKEN: 'd' should be marked as a copy
+  $ hg st -C
+  M a
+  A d
+  R c
+  ? a.orig