annotate tests/test-evolve-issue5967.t @ 4722:7839720c7c75

rewind: make sure merge commits include files from p1 and p2 Otherwise rewinding a merge commit makes it lose all changes. This fix populates `updates` argument of rewriteutil.rewrite() with parent changesets. That argument is normally used for folding multiple changesets, but in this case it's simply used to include files from p1 and p2. Usually, rewrite() works fine using ctx.files(), but that function can return an empty list when ctx is a merge commit.
author Anton Shestakov <av6@dwimlabs.net>
date Thu, 11 Jul 2019 17:04:08 +0800
parents de194ed973ba
children 591a0afd2ef3
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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')
4706
de194ed973ba branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4689
diff changeset
44 unresolved merge conflicts
de194ed973ba branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 4689
diff changeset
45 (see 'hg help evolve.interrupted')
4688
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
46 [1]
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
47
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
48 $ echo apricot > a
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
49 $ hg resolve --mark a
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
50 (no more unresolved files)
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
51 continue: hg evolve --continue
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
52
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
53 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
54
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
55 $ hg evolve --continue
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
56 evolving 1:dd9b5dd30cd6 "banana"
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
57 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
58 working directory is now at 4d6fec23dcc4
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
59 $ hg glog
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
60 @ 2: apricot
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
61
4689
27947b17cfaf evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents: 4688
diff changeset
62
27947b17cfaf evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents: 4688
diff changeset
63 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
64
4688
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
65 $ 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
66 @ 4d6fec23dcc4 (2) apricot
4688
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
67 |
4689
27947b17cfaf evolve: orphans that evolve into nothing don't need successors (issue5967)
Anton Shestakov <av6@dwimlabs.net>
parents: 4688
diff changeset
68 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
69 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
70
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
71 $ hg olog --hidden --all 1
75329efe56a9 tests: demonstrate obsmarker creation after discarding conflicting changes
Anton Shestakov <av6@dwimlabs.net>
parents:
diff changeset
72 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
73 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
74