annotate tests/test-evolve-bumped.t @ 3573:d53277cdc1e7

evolve: handle stabilization of merge changeset with both parents obsoleted This patch adds logic to stabilize an orphan merge changeset having both parents obsoleted. The logic tries to first stabilize the merge changeset on successor of second parent and then stabilize the new changeset formed on the successor of first parent. We are stabilizing on second parent first and then to second parent to preserve the first parent's successor as first parent of the merge changeset. Conflicts can occcur and we can loose processing information, therefore we store a variable in statefile `orphanmerge` which represents whether we are processing a merge changeset with both parents obsoleted. Thanks to Pierre-Yves David for suggesting this way and helping to understand the correctness of this. More rigourous test cases for this will be added in next patch.
author Pulkit Goyal <7895pulkit@gmail.com>
date Sun, 18 Mar 2018 17:29:32 +0530
parents b237c1c6dc19
children e1a230cc4527
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
1 $ hg init public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
2 $ cd public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
3 $ echo a > a
1417
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
4 $ mkcommit() {
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
5 > echo "$1" > "$1"
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
6 > hg add "$1"
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
7 > hg ci -m "add $1"
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
8 > }
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
9 $ hg commit -A -m init
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
10 adding a
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
11 $ cd ..
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
12
1806
9f42f819267b evolve: move the extensions to 'hgext3rd'
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1453
diff changeset
13 $ evolvepath=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
14 $ hg clone -U public private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
15 $ cd private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
16 $ cat >> .hg/hgrc <<EOF
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
17 > [extensions]
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
18 > evolve = $evolvepath
1416
b8a9d2e8c772 test-evolve-bumped: improve tests legibility
Laurent Charignon <lcharignon@fb.com>
parents: 1404
diff changeset
19 > [ui]
b8a9d2e8c772 test-evolve-bumped: improve tests legibility
Laurent Charignon <lcharignon@fb.com>
parents: 1404
diff changeset
20 > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
21 > [phases]
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
22 > publish = false
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
23 > EOF
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
24 $ cd ..
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
25
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
26 $ cp -a private alice
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
27 $ cp -a private bob
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
28
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
29 $ cd alice
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
30 $ hg update
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
31 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
32 $ echo a >> a
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
33 $ hg commit -u alice -m 'modify a'
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
34 $ hg push ../private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
35 pushing to ../private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
36 searching for changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
37 adding changesets
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
38 adding manifests
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
39 adding file changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
40 added 1 changesets with 1 changes to 1 files
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
41 $ hg log -r 'draft()'
1416
b8a9d2e8c772 test-evolve-bumped: improve tests legibility
Laurent Charignon <lcharignon@fb.com>
parents: 1404
diff changeset
42 1:4d1169d82e47@default(draft) modify a
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
43
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
44 $ cd ../bob
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
45 $ hg pull ../private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
46 pulling from ../private
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
47 searching for changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
48 adding changesets
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
49 adding manifests
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
50 adding file changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
51 added 1 changesets with 1 changes to 1 files
3075
8feb2cae7eae test: adapt to output change from eb586ed5d8ce
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3013
diff changeset
52 new changesets 4d1169d82e47
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
53 (run 'hg update' to get a working copy)
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
54 $ hg log -r 'draft()'
1416
b8a9d2e8c772 test-evolve-bumped: improve tests legibility
Laurent Charignon <lcharignon@fb.com>
parents: 1404
diff changeset
55 1:4d1169d82e47@default(draft) modify a
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
56 $ hg push ../public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
57 pushing to ../public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
58 searching for changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
59 adding changesets
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
60 adding manifests
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
61 adding file changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
62 added 1 changesets with 1 changes to 1 files
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
63 $ hg log -r 'draft()'
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
64
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
65 $ cd ../alice
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
66 $ hg amend -m 'tweak a'
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
67 $ hg pull ../public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
68 pulling from ../public
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
69 searching for changes
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
70 no changes found
3013
945a0989e41b packaging: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3000
diff changeset
71 1 new phase-divergent changesets
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
72
3155
b237c1c6dc19 evolve: rename --phasedivergent flag to --phase-divergent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3075
diff changeset
73 $ hg evolve -a -A --phase-divergent
1150
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
74 recreate:[2] tweak a
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
75 atop:[1] modify a
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
76 computing new diff
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
77 committed as 4d1169d82e47
2c99d92faa62 evolve: fix error during iteration over bumped changesets (bug38)
Pierre-Yves David <pierre-yves.david@fb.com>
parents:
diff changeset
78 working directory is now at 4d1169d82e47
1417
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
79
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
80 Bumped Merge changeset:
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
81 -----------------------
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
82
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
83 We currently cannot automatically solve bumped changeset that is the
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
84 product of a merge, we add a test for it.
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
85
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
86 $ mkcommit _a
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
87 $ hg up .^
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
88 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
89 $ mkcommit _b
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
90 created new head
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
91 $ mkcommit _c
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
92 $ hg log -G
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
93 @ 5:eeaf70969381@default(draft) add _c
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
94 |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
95 o 4:6612fc0ddeb6@default(draft) add _b
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
96 |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
97 | o 3:154ad198ff4a@default(draft) add _a
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
98 |/
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
99 o 1:4d1169d82e47@default(public) modify a
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
100 |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
101 o 0:d3873e73d99e@default(public) init
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
102
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
103 $ hg merge 3
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
104 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
105 (branch merge, don't forget to commit)
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
106 $ hg commit -m "merge"
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
107 $ hg commit --amend -m "New message"
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
108 $ hg phase --public 551127da2a8a --hidden
3013
945a0989e41b packaging: merge stable back into default
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3000
diff changeset
109 1 new phase-divergent changesets
1417
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
110 $ hg log -G
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
111 @ 7:b28e84916d8c@default(draft) New message
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
112 |\
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
113 +---o 6:551127da2a8a@default(public) merge
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
114 | |/
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
115 | o 5:eeaf70969381@default(public) add _c
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
116 | |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
117 | o 4:6612fc0ddeb6@default(public) add _b
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
118 | |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
119 o | 3:154ad198ff4a@default(public) add _a
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
120 |/
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
121 o 1:4d1169d82e47@default(public) modify a
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
122 |
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
123 o 0:d3873e73d99e@default(public) init
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
124
3155
b237c1c6dc19 evolve: rename --phasedivergent flag to --phase-divergent
Pierre-Yves David <pierre-yves.david@octobus.net>
parents: 3075
diff changeset
125 $ hg evolve --all --phase-divergent
1417
9e7da169f66e test-evolve-bumped: add new test case for merge
Laurent Charignon <lcharignon@fb.com>
parents: 1416
diff changeset
126 skipping b28e84916d8c : we do not handle merge yet