Mercurial > evolve
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 |
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 |