|
1 ================================== |
|
2 Test for "orphan" type instability |
|
3 ================================== |
|
4 |
|
5 This file gather test case around the "orphan" changeset instability. This |
|
6 instability happens when a changesets has obsolete ancestors. |
|
7 |
|
8 $ cat >> $HGRCPATH <<EOF |
|
9 > [defaults] |
|
10 > amend=-d "0 0" |
|
11 > fold=-d "0 0" |
|
12 > [web] |
|
13 > push_ssl = false |
|
14 > allow_push = * |
|
15 > [phases] |
|
16 > publish = False |
|
17 > [diff] |
|
18 > git = 1 |
|
19 > unified = 0 |
|
20 > [ui] |
|
21 > logtemplate = {rev}:{node|short}@{branch}({phase}) {desc|firstline}\n |
|
22 > [extensions] |
|
23 > EOF |
|
24 $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH |
|
25 $ mkcommit() { |
|
26 > echo "$1" > "$1" |
|
27 > hg add "$1" |
|
28 > hg ci -m "add $1" |
|
29 > } |
|
30 |
|
31 $ mkstack() { |
|
32 > # Creates a stack of commit based on $1 with messages from $2, $3 .. |
|
33 > hg update "$1" -C |
|
34 > shift |
|
35 > mkcommits $* |
|
36 > } |
|
37 |
|
38 $ mkcommits() { |
|
39 > for i in $@; do mkcommit $i ; done |
|
40 > } |
|
41 |
|
42 orphan parent is obsolete with a single successor |
|
43 ================================================= |
|
44 |
|
45 Test orphan resolution for a changeset orphan because its parent is obsolete |
|
46 with one successor. |
|
47 |
|
48 $ hg init test1 |
|
49 $ cd test1 |
|
50 $ mkcommits _a _b _c |
|
51 $ hg up "desc(_b)" |
|
52 0 files updated, 0 files merged, 1 files removed, 0 files unresolved |
|
53 $ hg amend -m "bprime" |
|
54 1 new orphan changesets |
|
55 $ hg log -G |
|
56 @ 3:36050226a9b9@default(draft) bprime |
|
57 | |
|
58 | * 2:102002290587@default(draft) add _c |
|
59 | | |
|
60 | x 1:37445b16603b@default(draft) add _b |
|
61 |/ |
|
62 o 0:135f39f4bd78@default(draft) add _a |
|
63 |
|
64 |
|
65 $ hg evo --all --any --orphan |
|
66 move:[2] add _c |
|
67 atop:[3] bprime |
|
68 working directory is now at fdcf3523a74d |
|
69 $ hg log -G |
|
70 @ 4:fdcf3523a74d@default(draft) add _c |
|
71 | |
|
72 o 3:36050226a9b9@default(draft) bprime |
|
73 | |
|
74 o 0:135f39f4bd78@default(draft) add _a |
|
75 |
|
76 |
|
77 $ cd .. |
|
78 |
|
79 |
|
80 orphan parent is obsolete with a multiple successors (reversed order) |
|
81 ===================================================================== |
|
82 |
|
83 Test orphan resolution for a changeset orphan because its parent is obsolete |
|
84 with multiple successors on the same branch but in reverse order (cross-split). |
|
85 |
|
86 $ hg init test5 |
|
87 $ cd test5 |
|
88 $ mkcommits _a _b _c |
|
89 $ hg up "desc(_a)" |
|
90 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
91 $ mkcommits bprimesplit1 bprimesplit2 |
|
92 created new head |
|
93 $ hg prune "desc(_b)" -s "desc(bprimesplit1) + desc(bprimesplit2)" --split |
|
94 1 changesets pruned |
|
95 1 new orphan changesets |
|
96 $ hg up "desc(_a)" |
|
97 0 files updated, 0 files merged, 2 files removed, 0 files unresolved |
|
98 $ mkcommits bsecondsplit1 bsecondsplit2 |
|
99 created new head |
|
100 $ hg prune "desc(bprimesplit1)" -s "desc(bsecondsplit2)" |
|
101 1 changesets pruned |
|
102 1 new orphan changesets |
|
103 $ hg prune "desc(bprimesplit2)" -s "desc(bsecondsplit1)" |
|
104 1 changesets pruned |
|
105 $ hg log -G |
|
106 @ 6:59b942dbda14@default(draft) add bsecondsplit2 |
|
107 | |
|
108 o 5:8ffdae67d696@default(draft) add bsecondsplit1 |
|
109 | |
|
110 | * 2:102002290587@default(draft) add _c |
|
111 | | |
|
112 | x 1:37445b16603b@default(draft) add _b |
|
113 |/ |
|
114 o 0:135f39f4bd78@default(draft) add _a |
|
115 |
|
116 |
|
117 $ hg evo --all --any --orphan |
|
118 move:[2] add _c |
|
119 atop:[6] add bsecondsplit2 |
|
120 working directory is now at 98e3f21461ff |
|
121 $ hg log -G |
|
122 @ 7:98e3f21461ff@default(draft) add _c |
|
123 | |
|
124 o 6:59b942dbda14@default(draft) add bsecondsplit2 |
|
125 | |
|
126 o 5:8ffdae67d696@default(draft) add bsecondsplit1 |
|
127 | |
|
128 o 0:135f39f4bd78@default(draft) add _a |
|
129 |
|
130 |
|
131 $ cd .. |