##// END OF EJS Templates
graft: use revs to make tests more readable
Stefano Tortarolo -
r15507:7186b54b stable
parent child Browse files
Show More
@@ -1,257 +1,257 b''
1 1 Create a repo with some stuff in it:
2 2
3 3 $ hg init a
4 4 $ cd a
5 5 $ echo a > a
6 6 $ echo a > d
7 7 $ echo a > e
8 8 $ hg ci -qAm0
9 9 $ echo b > a
10 10 $ hg ci -m1 -u bar
11 11 $ hg mv a b
12 12 $ hg ci -m2
13 13 $ hg cp b c
14 14 $ hg ci -m3 -u baz
15 15 $ echo b > d
16 16 $ echo f > e
17 17 $ hg ci -m4
18 18 $ hg up -q 3
19 19 $ echo b > e
20 20 $ hg branch -q stable
21 21 $ hg ci -m5
22 22 $ hg merge -q default --tool internal:local
23 23 $ hg branch -q default
24 24 $ hg ci -m6
25 25
26 26 Need to specify a rev:
27 27
28 28 $ hg graft
29 29 abort: no revisions specified
30 30 [255]
31 31
32 32 Can't graft ancestor:
33 33
34 34 $ hg graft 1 2
35 35 skipping ancestor revision 1
36 36 skipping ancestor revision 2
37 37 [255]
38 38
39 39 Can't graft with dirty wd:
40 40
41 41 $ hg up -q 0
42 42 $ echo foo > a
43 43 $ hg graft 1
44 44 abort: outstanding uncommitted changes
45 45 [255]
46 46 $ hg revert a
47 47
48 48 Graft a rename:
49 49
50 50 $ hg graft 2 -u foo
51 51 grafting revision 2
52 52 merging a and b to b
53 53 $ hg export tip --git
54 54 # HG changeset patch
55 55 # User foo
56 56 # Date 0 0
57 57 # Node ID d2e44c99fd3f31c176ea4efb9eca9f6306c81756
58 58 # Parent 68795b066622ca79a25816a662041d8f78f3cd9e
59 59 2
60 60
61 61 diff --git a/a b/b
62 62 rename from a
63 63 rename to b
64 64 --- a/a
65 65 +++ b/b
66 66 @@ -1,1 +1,1 @@
67 67 -a
68 68 +b
69 69
70 70 Look for extra:source
71 71
72 72 $ hg log --debug -r tip
73 73 changeset: 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756
74 74 tag: tip
75 75 parent: 0:68795b066622ca79a25816a662041d8f78f3cd9e
76 76 parent: -1:0000000000000000000000000000000000000000
77 77 manifest: 7:5d59766436fd8fbcd38e7bebef0f6eaf3eebe637
78 78 user: foo
79 79 date: Thu Jan 01 00:00:00 1970 +0000
80 80 files+: b
81 81 files-: a
82 82 extra: branch=default
83 83 extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4
84 84 description:
85 85 2
86 86
87 87
88 88
89 89 Graft out of order, skipping a merge and a duplicate
90 90
91 91 $ hg graft 1 5 4 3 'merge()' 2 --debug
92 92 skipping ungraftable merge revision 6
93 93 scanning for duplicate grafts
94 94 skipping already grafted revision 2
95 95 grafting revision 1
96 96 searching for copies back to rev 1
97 97 unmatched files in local:
98 98 a.orig
99 99 b
100 100 all copies found (* = to merge, ! = divergent):
101 101 b -> a *
102 102 checking for directory renames
103 103 resolving manifests
104 104 overwrite False partial False
105 105 ancestor 68795b066622 local d2e44c99fd3f+ remote 5d205f8b35b6
106 106 b: local copied/moved to a -> m
107 107 preserving b for resolve of b
108 108 updating: b 1/1 files (100.00%)
109 109 searching for copies back to rev 1
110 110 unmatched files in local:
111 111 a
112 112 unmatched files in other:
113 113 b
114 114 all copies found (* = to merge, ! = divergent):
115 115 b -> a *
116 116 checking for directory renames
117 117 b
118 118 b: searching for copy revision for a
119 119 b: copy a:b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3
120 120 grafting revision 5
121 121 searching for copies back to rev 1
122 122 unmatched files in local:
123 123 a.orig
124 124 resolving manifests
125 125 overwrite False partial False
126 126 ancestor 4c60f11aa304 local 6f5ea6ac8b70+ remote 97f8bfe72746
127 127 e: remote is newer -> g
128 128 updating: e 1/1 files (100.00%)
129 129 getting e
130 130 searching for copies back to rev 1
131 131 unmatched files in local:
132 132 c
133 133 all copies found (* = to merge, ! = divergent):
134 134 c -> b *
135 135 checking for directory renames
136 136 e
137 137 grafting revision 4
138 138 searching for copies back to rev 1
139 139 unmatched files in local:
140 140 a.orig
141 141 resolving manifests
142 142 overwrite False partial False
143 143 ancestor 4c60f11aa304 local 77eb504366ab+ remote 9c233e8e184d
144 144 e: versions differ -> m
145 145 d: remote is newer -> g
146 146 preserving e for resolve of e
147 147 updating: d 1/2 files (50.00%)
148 148 getting d
149 149 updating: e 2/2 files (100.00%)
150 150 picked tool 'internal:merge' for e (binary False symlink False)
151 151 merging e
152 152 my e@77eb504366ab+ other e@9c233e8e184d ancestor e@68795b066622
153 153 warning: conflicts during merge.
154 154 merging e failed!
155 155 searching for copies back to rev 1
156 156 unmatched files in local:
157 157 c
158 158 all copies found (* = to merge, ! = divergent):
159 159 c -> b *
160 160 checking for directory renames
161 161 abort: unresolved conflicts, can't continue
162 162 (use hg resolve and hg graft --continue)
163 163 [255]
164 164
165 165 Continue without resolve should fail:
166 166
167 167 $ hg graft -c
168 168 grafting revision 4
169 169 abort: unresolved merge conflicts (see hg help resolve)
170 170 [255]
171 171
172 172 Fix up:
173 173
174 174 $ echo b > e
175 175 $ hg resolve -m e
176 176
177 177 Continue with a revision should fail:
178 178
179 179 $ hg graft -c 6
180 180 abort: can't specify --continue and revisions
181 181 [255]
182 182
183 183 Continue for real, clobber usernames
184 184
185 185 $ hg graft -c -U
186 186 grafting revision 4
187 187 grafting revision 3
188 188
189 189 Compare with original:
190 190
191 191 $ hg diff -r 6
192 192 $ hg status --rev 0:. -C
193 193 M d
194 194 M e
195 195 A b
196 196 a
197 197 A c
198 198 a
199 199 R a
200 200
201 201 View graph:
202 202
203 $ hg --config extensions.graphlog= log -G --template '{author}@rev: {desc}\n'
204 @ test@rev: 3
203 $ hg --config extensions.graphlog= log -G --template '{author}@{rev}: {desc}\n'
204 @ test@11: 3
205 205 |
206 o test@rev: 4
206 o test@10: 4
207 207 |
208 o test@rev: 5
208 o test@9: 5
209 209 |
210 o bar@rev: 1
210 o bar@8: 1
211 211 |
212 o foo@rev: 2
212 o foo@7: 2
213 213 |
214 | o test@rev: 6
214 | o test@6: 6
215 215 | |\
216 | | o test@rev: 5
216 | | o test@5: 5
217 217 | | |
218 | o | test@rev: 4
218 | o | test@4: 4
219 219 | |/
220 | o baz@rev: 3
220 | o baz@3: 3
221 221 | |
222 | o test@rev: 2
222 | o test@2: 2
223 223 | |
224 | o bar@rev: 1
224 | o bar@1: 1
225 225 |/
226 o test@rev: 0
226 o test@0: 0
227 227
228 228 Graft again onto another branch should preserve the original source
229 229 $ hg up -q 0
230 230 $ echo 'g'>g
231 231 $ hg add g
232 232 $ hg ci -m 7
233 233 created new head
234 234 $ hg graft 7
235 235 grafting revision 7
236 236
237 237 $ hg log -r 7 --template '{rev}:{node}\n'
238 238 7:d2e44c99fd3f31c176ea4efb9eca9f6306c81756
239 239 $ hg log -r 2 --template '{rev}:{node}\n'
240 240 2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4
241 241
242 242 $ hg log --debug -r tip
243 243 changeset: 13:39bb1d13572759bd1e6fc874fed1b12ece047a18
244 244 tag: tip
245 245 parent: 12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f
246 246 parent: -1:0000000000000000000000000000000000000000
247 247 manifest: 13:0780e055d8f4cd12eadd5a2719481648f336f7a9
248 248 user: foo
249 249 date: Thu Jan 01 00:00:00 1970 +0000
250 250 files+: b
251 251 files-: a
252 252 extra: branch=default
253 253 extra: source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4
254 254 description:
255 255 2
256 256
257 257
General Comments 0
You need to be logged in to leave comments. Login now