Mercurial > evolve
annotate tests/test-evolve-issue5967.t @ 4689:27947b17cfaf stable
evolve: orphans that evolve into nothing don't need successors (issue5967)
When continuing to solve an orphan that created no changes (i.e. clean wdir),
_completeorphan() used to create an obsmarker that said that the result of that
orphan evolution is the currently checked out changeset. That's not a correct
obsmarker, because all of the orphan's changes were dropped and so it had no
effect on the currently checked out changeset.
This is an issue that has only existed when --continu'ing evolve, that's why
the fix touches _completeorphan(), but not _solveunstable(). This fix is
adapted from a similar "if node is None" block in _finalizerelocate().
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Tue, 18 Jun 2019 17:17:31 +0800 |
parents | 75329efe56a9 |
children | de194ed973ba |
rev | line source |
---|---|
4688
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
1 hg evolve --continue and obsmarkers after conflict resolution with no changes to commit (issue5967) |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
2 https://bz.mercurial-scm.org/show_bug.cgi?id=5967 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
3 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
4 $ . $TESTDIR/testlib/common.sh |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
5 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
6 $ hg init issue5967 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
7 $ cd issue5967 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
8 $ cat > .hg/hgrc << EOF |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
9 > [alias] |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
10 > glog = log -GT "{rev}: {desc}" |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
11 > [extensions] |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
12 > evolve= |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
13 > EOF |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
14 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
15 $ echo apple > a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
16 $ hg ci -qAm 'apple' |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
17 $ echo banana > a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
18 $ hg ci -m 'banana' |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
19 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
20 Amending revision 0 in a way that causes conflicts |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
21 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
22 $ hg prev |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
23 1 files updated, 0 files merged, 0 files removed, 0 files unresolved |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
24 [0] apple |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
25 $ echo apricot > a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
26 $ hg amend -m 'apricot' |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
27 1 new orphan changesets |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
28 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
29 $ hg glog |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
30 @ 2: apricot |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
31 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
32 * 1: banana |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
33 | |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
34 x 0: apple |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
35 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
36 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
37 Trying to evolve, then manually discarding changes from revision 1 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
38 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
39 $ hg evolve |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
40 move:[1] banana |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
41 atop:[2] apricot |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
42 merging a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
43 warning: conflicts while merging a! (edit, then use 'hg resolve --mark') |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
44 fix conflicts and see `hg help evolve.interrupted` |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
45 [1] |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
46 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
47 $ echo apricot > a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
48 $ hg resolve --mark a |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
49 (no more unresolved files) |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
50 continue: hg evolve --continue |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
51 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
52 This will correctly notice that revision 1 can be dropped |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
53 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
54 $ hg evolve --continue |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
55 evolving 1:dd9b5dd30cd6 "banana" |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
56 evolution of 1:dd9b5dd30cd6 created no changes to commit |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
57 working directory is now at 4d6fec23dcc4 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
58 $ hg glog |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
59 @ 2: apricot |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
60 |
4689
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
61 |
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
62 This is important: 1 should not have a successor (especially not revision 2) |
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
63 |
4688
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
64 $ hg olog --all |
4689
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
65 @ 4d6fec23dcc4 (2) apricot |
4688
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
66 | |
4689
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
67 x 3ba7db0ce860 (0) apple |
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
68 rewritten(description, content) as 4d6fec23dcc4 using amend by test (Thu Jan 01 00:00:00 1970 +0000) |
4688
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
69 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
70 $ hg olog --hidden --all 1 |
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
71 x dd9b5dd30cd6 (1) banana |
4689
27947b17cfaf
evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents:
4688
diff
changeset
|
72 pruned using evolve by test (Thu Jan 01 00:00:00 1970 +0000) |
4688
75329efe56a9
tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff
changeset
|
73 |