##// END OF EJS Templates
test-obsolete: change a marker so it is relevant to the exchanged set...
Pierre-Yves David -
r22348:44092e6d default
parent child Browse files
Show More
@@ -1,746 +1,748 b''
1 1 $ cat >> $HGRCPATH << EOF
2 2 > [phases]
3 3 > # public changeset are not obsolete
4 4 > publish=false
5 5 > [ui]
6 6 > logtemplate="{rev}:{node|short} ({phase}) [{tags} {bookmarks}] {desc|firstline}\n"
7 7 > EOF
8 8 $ mkcommit() {
9 9 > echo "$1" > "$1"
10 10 > hg add "$1"
11 11 > hg ci -m "add $1"
12 12 > }
13 13 $ getid() {
14 14 > hg id --debug --hidden -ir "desc('$1')"
15 15 > }
16 16
17 17 $ cat > debugkeys.py <<EOF
18 18 > def reposetup(ui, repo):
19 19 > class debugkeysrepo(repo.__class__):
20 20 > def listkeys(self, namespace):
21 21 > ui.write('listkeys %s\n' % (namespace,))
22 22 > return super(debugkeysrepo, self).listkeys(namespace)
23 23 >
24 24 > if repo.local():
25 25 > repo.__class__ = debugkeysrepo
26 26 > EOF
27 27
28 28 $ hg init tmpa
29 29 $ cd tmpa
30 30 $ mkcommit kill_me
31 31
32 32 Checking that the feature is properly disabled
33 33
34 34 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
35 35 abort: obsolete feature is not enabled on this repo
36 36 [255]
37 37
38 38 Enabling it
39 39
40 40 $ cat > ../obs.py << EOF
41 41 > import mercurial.obsolete
42 42 > mercurial.obsolete._enabled = True
43 43 > EOF
44 44 $ echo '[extensions]' >> $HGRCPATH
45 45 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
46 46
47 47 Killing a single changeset without replacement
48 48
49 49 $ hg debugobsolete 0
50 50 abort: changeset references must be full hexadecimal node identifiers
51 51 [255]
52 52 $ hg debugobsolete '00'
53 53 abort: changeset references must be full hexadecimal node identifiers
54 54 [255]
55 55 $ hg debugobsolete -d '0 0' `getid kill_me` -u babar
56 56 $ hg debugobsolete
57 57 97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {'user': 'babar'}
58 58
59 59 (test that mercurial is not confused)
60 60
61 61 $ hg up null --quiet # having 0 as parent prevents it to be hidden
62 62 $ hg tip
63 63 -1:000000000000 (public) [tip ]
64 64 $ hg up --hidden tip --quiet
65 65
66 66 Killing a single changeset with itself should fail
67 67 (simple local safeguard)
68 68
69 69 $ hg debugobsolete `getid kill_me` `getid kill_me`
70 70 abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0
71 71 [255]
72 72
73 73 $ cd ..
74 74
75 75 Killing a single changeset with replacement
76 76
77 77 $ hg init tmpb
78 78 $ cd tmpb
79 79 $ mkcommit a
80 80 $ mkcommit b
81 81 $ mkcommit original_c
82 82 $ hg up "desc('b')"
83 83 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
84 84 $ mkcommit new_c
85 85 created new head
86 86 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
87 87 $ hg debugobsolete --flag 12 `getid original_c` `getid new_c` -d '56 12'
88 88 $ hg log -r 'hidden()' --template '{rev}:{node|short} {desc}\n' --hidden
89 89 2:245bde4270cd add original_c
90 90 $ hg debugrevlog -cd
91 91 # rev p1rev p2rev start end deltastart base p1 p2 rawsize totalsize compression heads chainlen
92 92 0 -1 -1 0 59 0 0 0 0 58 58 0 1 0
93 93 1 0 -1 59 118 59 59 0 0 58 116 0 1 0
94 94 2 1 -1 118 204 59 59 59 0 76 192 0 1 1
95 95 3 1 -1 204 271 204 204 59 0 66 258 0 2 0
96 96 $ hg debugobsolete
97 97 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
98 98
99 99 do it again (it read the obsstore before adding new changeset)
100 100
101 101 $ hg up '.^'
102 102 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
103 103 $ mkcommit new_2_c
104 104 created new head
105 105 $ hg debugobsolete -d '1337 0' `getid new_c` `getid new_2_c`
106 106 $ hg debugobsolete
107 107 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
108 108 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
109 109
110 110 Register two markers with a missing node
111 111
112 112 $ hg up '.^'
113 113 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
114 114 $ mkcommit new_3_c
115 115 created new head
116 116 $ hg debugobsolete -d '1338 0' `getid new_2_c` 1337133713371337133713371337133713371337
117 117 $ hg debugobsolete -d '1339 0' 1337133713371337133713371337133713371337 `getid new_3_c`
118 118 $ hg debugobsolete
119 119 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
120 120 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
121 121 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
122 122 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
123 123
124 124 Refuse pathological nullid successors
125 125 $ hg debugobsolete -d '9001 0' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000
126 126 transaction abort!
127 127 rollback completed
128 128 abort: bad obsolescence marker detected: invalid successors nullid
129 129 [255]
130 130
131 131 Check that graphlog detect that a changeset is obsolete:
132 132
133 133 $ hg log -G
134 134 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
135 135 |
136 136 o 1:7c3bad9141dc (draft) [ ] add b
137 137 |
138 138 o 0:1f0dee641bb7 (draft) [ ] add a
139 139
140 140
141 141 check that heads does not report them
142 142
143 143 $ hg heads
144 144 5:5601fb93a350 (draft) [tip ] add new_3_c
145 145 $ hg heads --hidden
146 146 5:5601fb93a350 (draft) [tip ] add new_3_c
147 147 4:ca819180edb9 (draft) [ ] add new_2_c
148 148 3:cdbce2fbb163 (draft) [ ] add new_c
149 149 2:245bde4270cd (draft) [ ] add original_c
150 150
151 151
152 152 check that summary does not report them
153 153
154 154 $ hg init ../sink
155 155 $ echo '[paths]' >> .hg/hgrc
156 156 $ echo 'default=../sink' >> .hg/hgrc
157 157 $ hg summary --remote
158 158 parent: 5:5601fb93a350 tip
159 159 add new_3_c
160 160 branch: default
161 161 commit: (clean)
162 162 update: (current)
163 163 remote: 3 outgoing
164 164
165 165 $ hg summary --remote --hidden
166 166 parent: 5:5601fb93a350 tip
167 167 add new_3_c
168 168 branch: default
169 169 commit: (clean)
170 170 update: 3 new changesets, 4 branch heads (merge)
171 171 remote: 3 outgoing
172 172
173 173 check that various commands work well with filtering
174 174
175 175 $ hg tip
176 176 5:5601fb93a350 (draft) [tip ] add new_3_c
177 177 $ hg log -r 6
178 178 abort: unknown revision '6'!
179 179 [255]
180 180 $ hg log -r 4
181 181 abort: unknown revision '4'!
182 182 [255]
183 183
184 184 Check that public changeset are not accounted as obsolete:
185 185
186 186 $ hg --hidden phase --public 2
187 187 $ hg log -G
188 188 @ 5:5601fb93a350 (draft) [tip ] add new_3_c
189 189 |
190 190 | o 2:245bde4270cd (public) [ ] add original_c
191 191 |/
192 192 o 1:7c3bad9141dc (public) [ ] add b
193 193 |
194 194 o 0:1f0dee641bb7 (public) [ ] add a
195 195
196 196
197 197 And that bumped changeset are detected
198 198 --------------------------------------
199 199
200 200 If we didn't filtered obsolete changesets out, 3 and 4 would show up too. Also
201 201 note that the bumped changeset (5:5601fb93a350) is not a direct successor of
202 202 the public changeset
203 203
204 204 $ hg log --hidden -r 'bumped()'
205 205 5:5601fb93a350 (draft) [tip ] add new_3_c
206 206
207 207 And that we can't push bumped changeset
208 208
209 209 $ hg push ../tmpa -r 0 --force #(make repo related)
210 210 pushing to ../tmpa
211 211 searching for changes
212 212 warning: repository is unrelated
213 213 adding changesets
214 214 adding manifests
215 215 adding file changes
216 216 added 1 changesets with 1 changes to 1 files (+1 heads)
217 217 $ hg push ../tmpa
218 218 pushing to ../tmpa
219 219 searching for changes
220 220 abort: push includes bumped changeset: 5601fb93a350!
221 221 [255]
222 222
223 223 Fixing "bumped" situation
224 224 We need to create a clone of 5 and add a special marker with a flag
225 225
226 226 $ hg up '5^'
227 227 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
228 228 $ hg revert -ar 5
229 229 adding new_3_c
230 230 $ hg ci -m 'add n3w_3_c'
231 231 created new head
232 232 $ hg debugobsolete -d '1338 0' --flags 1 `getid new_3_c` `getid n3w_3_c`
233 233 $ hg log -r 'bumped()'
234 234 $ hg log -G
235 235 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
236 236 |
237 237 | o 2:245bde4270cd (public) [ ] add original_c
238 238 |/
239 239 o 1:7c3bad9141dc (public) [ ] add b
240 240 |
241 241 o 0:1f0dee641bb7 (public) [ ] add a
242 242
243 243
244 244
245 245
246 246 $ cd ..
247 247
248 248 Exchange Test
249 249 ============================
250 250
251 251 Destination repo does not have any data
252 252 ---------------------------------------
253 253
254 254 Simple incoming test
255 255
256 256 $ hg init tmpc
257 257 $ cd tmpc
258 258 $ hg incoming ../tmpb
259 259 comparing with ../tmpb
260 260 0:1f0dee641bb7 (public) [ ] add a
261 261 1:7c3bad9141dc (public) [ ] add b
262 262 2:245bde4270cd (public) [ ] add original_c
263 263 6:6f9641995072 (draft) [tip ] add n3w_3_c
264 264
265 265 Try to pull markers
266 266 (extinct changeset are excluded but marker are pushed)
267 267
268 268 $ hg pull ../tmpb
269 269 pulling from ../tmpb
270 270 requesting all changes
271 271 adding changesets
272 272 adding manifests
273 273 adding file changes
274 274 added 4 changesets with 4 changes to 4 files (+1 heads)
275 275 (run 'hg heads' to see heads, 'hg merge' to merge)
276 276 $ hg debugobsolete
277 277 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
278 278 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
279 279 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
280 280 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
281 281 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
282 282
283 283 Rollback//Transaction support
284 284
285 285 $ hg debugobsolete -d '1340 0' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
286 286 $ hg debugobsolete
287 287 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
288 288 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
289 289 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
290 290 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
291 291 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
292 292 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {'user': 'test'}
293 293 $ hg rollback -n
294 294 repository tip rolled back to revision 3 (undo debugobsolete)
295 295 $ hg rollback
296 296 repository tip rolled back to revision 3 (undo debugobsolete)
297 297 $ hg debugobsolete
298 298 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
299 299 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
300 300 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
301 301 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
302 302 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
303 303
304 304 $ cd ..
305 305
306 306 Try to push markers
307 307
308 308 $ hg init tmpd
309 309 $ hg -R tmpb push tmpd
310 310 pushing to tmpd
311 311 searching for changes
312 312 adding changesets
313 313 adding manifests
314 314 adding file changes
315 315 added 4 changesets with 4 changes to 4 files (+1 heads)
316 316 $ hg -R tmpd debugobsolete
317 317 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
318 318 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
319 319 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
320 320 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
321 321 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
322 322
323 323 Check obsolete keys are exchanged only if source has an obsolete store
324 324
325 325 $ hg init empty
326 326 $ hg --config extensions.debugkeys=debugkeys.py -R empty push tmpd
327 327 pushing to tmpd
328 328 listkeys phases
329 329 listkeys bookmarks
330 330 no changes found
331 331 listkeys phases
332 332 [1]
333 333
334 334 clone support
335 335 (markers are copied and extinct changesets are included to allow hardlinks)
336 336
337 337 $ hg clone tmpb clone-dest
338 338 updating to branch default
339 339 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
340 340 $ hg -R clone-dest log -G --hidden
341 341 @ 6:6f9641995072 (draft) [tip ] add n3w_3_c
342 342 |
343 343 | x 5:5601fb93a350 (draft) [ ] add new_3_c
344 344 |/
345 345 | x 4:ca819180edb9 (draft) [ ] add new_2_c
346 346 |/
347 347 | x 3:cdbce2fbb163 (draft) [ ] add new_c
348 348 |/
349 349 | o 2:245bde4270cd (public) [ ] add original_c
350 350 |/
351 351 o 1:7c3bad9141dc (public) [ ] add b
352 352 |
353 353 o 0:1f0dee641bb7 (public) [ ] add a
354 354
355 355 $ hg -R clone-dest debugobsolete
356 356 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
357 357 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
358 358 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
359 359 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
360 360 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
361 361
362 362
363 363 Destination repo have existing data
364 364 ---------------------------------------
365 365
366 366 On pull
367 367
368 368 $ hg init tmpe
369 369 $ cd tmpe
370 $ hg debugobsolete -d '1339 0' 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339
370 $ hg debugobsolete -d '1339 0' 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00
371 371 $ hg pull ../tmpb
372 372 pulling from ../tmpb
373 373 requesting all changes
374 374 adding changesets
375 375 adding manifests
376 376 adding file changes
377 377 added 4 changesets with 4 changes to 4 files (+1 heads)
378 378 (run 'hg heads' to see heads, 'hg merge' to merge)
379 379 $ hg debugobsolete
380 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
380 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
381 381 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
382 382 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
383 383 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
384 384 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
385 385 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
386 386
387 387
388 388 On push
389 389
390 390 $ hg push ../tmpc
391 391 pushing to ../tmpc
392 392 searching for changes
393 393 no changes found
394 394 [1]
395 395 $ hg -R ../tmpc debugobsolete
396 396 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
397 397 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
398 398 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
399 399 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
400 400 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
401 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
401 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
402 402
403 403 detect outgoing obsolete and unstable
404 404 ---------------------------------------
405 405
406 406
407 407 $ hg log -G
408 408 o 3:6f9641995072 (draft) [tip ] add n3w_3_c
409 409 |
410 410 | o 2:245bde4270cd (public) [ ] add original_c
411 411 |/
412 412 o 1:7c3bad9141dc (public) [ ] add b
413 413 |
414 414 o 0:1f0dee641bb7 (public) [ ] add a
415 415
416 416 $ hg up 'desc("n3w_3_c")'
417 417 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
418 418 $ mkcommit original_d
419 419 $ mkcommit original_e
420 420 $ hg debugobsolete --record-parents `getid original_d` -d '0 0'
421 421 $ hg debugobsolete | grep `getid original_d`
422 422 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
423 423 $ hg log -r 'obsolete()'
424 424 4:94b33453f93b (draft) [ ] add original_d
425 425 $ hg log -G -r '::unstable()'
426 426 @ 5:cda648ca50f5 (draft) [tip ] add original_e
427 427 |
428 428 x 4:94b33453f93b (draft) [ ] add original_d
429 429 |
430 430 o 3:6f9641995072 (draft) [ ] add n3w_3_c
431 431 |
432 432 o 1:7c3bad9141dc (public) [ ] add b
433 433 |
434 434 o 0:1f0dee641bb7 (public) [ ] add a
435 435
436 436
437 437 refuse to push obsolete changeset
438 438
439 439 $ hg push ../tmpc/ -r 'desc("original_d")'
440 440 pushing to ../tmpc/
441 441 searching for changes
442 442 abort: push includes obsolete changeset: 94b33453f93b!
443 443 [255]
444 444
445 445 refuse to push unstable changeset
446 446
447 447 $ hg push ../tmpc/
448 448 pushing to ../tmpc/
449 449 searching for changes
450 450 abort: push includes unstable changeset: cda648ca50f5!
451 451 [255]
452 452
453 453 Test that extinct changeset are properly detected
454 454
455 455 $ hg log -r 'extinct()'
456 456
457 457 Don't try to push extinct changeset
458 458
459 459 $ hg init ../tmpf
460 460 $ hg out ../tmpf
461 461 comparing with ../tmpf
462 462 searching for changes
463 463 0:1f0dee641bb7 (public) [ ] add a
464 464 1:7c3bad9141dc (public) [ ] add b
465 465 2:245bde4270cd (public) [ ] add original_c
466 466 3:6f9641995072 (draft) [ ] add n3w_3_c
467 467 4:94b33453f93b (draft) [ ] add original_d
468 468 5:cda648ca50f5 (draft) [tip ] add original_e
469 469 $ hg push ../tmpf -f # -f because be push unstable too
470 470 pushing to ../tmpf
471 471 searching for changes
472 472 adding changesets
473 473 adding manifests
474 474 adding file changes
475 475 added 6 changesets with 6 changes to 6 files (+1 heads)
476 476
477 477 no warning displayed
478 478
479 479 $ hg push ../tmpf
480 480 pushing to ../tmpf
481 481 searching for changes
482 482 no changes found
483 483 [1]
484 484
485 485 Do not warn about new head when the new head is a successors of a remote one
486 486
487 487 $ hg log -G
488 488 @ 5:cda648ca50f5 (draft) [tip ] add original_e
489 489 |
490 490 x 4:94b33453f93b (draft) [ ] add original_d
491 491 |
492 492 o 3:6f9641995072 (draft) [ ] add n3w_3_c
493 493 |
494 494 | o 2:245bde4270cd (public) [ ] add original_c
495 495 |/
496 496 o 1:7c3bad9141dc (public) [ ] add b
497 497 |
498 498 o 0:1f0dee641bb7 (public) [ ] add a
499 499
500 500 $ hg up -q 'desc(n3w_3_c)'
501 501 $ mkcommit obsolete_e
502 502 created new head
503 503 $ hg debugobsolete `getid 'original_e'` `getid 'obsolete_e'`
504 504 $ hg outgoing ../tmpf # parasite hg outgoing testin
505 505 comparing with ../tmpf
506 506 searching for changes
507 507 6:3de5eca88c00 (draft) [tip ] add obsolete_e
508 508 $ hg push ../tmpf
509 509 pushing to ../tmpf
510 510 searching for changes
511 511 adding changesets
512 512 adding manifests
513 513 adding file changes
514 514 added 1 changesets with 1 changes to 1 files (+1 heads)
515 515
516 516 test relevance computation
517 517 ---------------------------------------
518 518
519 519 Checking simple case of "marker relevance".
520 520
521 521
522 522 Reminder of the repo situation
523 523
524 524 $ hg log --hidden --graph
525 525 @ 6:3de5eca88c00 (draft) [tip ] add obsolete_e
526 526 |
527 527 | x 5:cda648ca50f5 (draft) [ ] add original_e
528 528 | |
529 529 | x 4:94b33453f93b (draft) [ ] add original_d
530 530 |/
531 531 o 3:6f9641995072 (draft) [ ] add n3w_3_c
532 532 |
533 533 | o 2:245bde4270cd (public) [ ] add original_c
534 534 |/
535 535 o 1:7c3bad9141dc (public) [ ] add b
536 536 |
537 537 o 0:1f0dee641bb7 (public) [ ] add a
538 538
539 539
540 540 List of all markers
541 541
542 542 $ hg debugobsolete
543 2448244824482448244824482448244824482448 1339133913391339133913391339133913391339 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
543 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
544 544 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
545 545 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
546 546 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
547 547 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
548 548 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
549 549 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
550 550 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
551 551
552 552 List of changesets with no chain
553 553
554 554 $ hg debugobsolete --hidden --rev ::2
555 555
556 556 List of changesets that are included on marker chain
557 557
558 558 $ hg debugobsolete --hidden --rev 6
559 559 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
560 560
561 561 List of changesets with a longer chain, (including a pruned children)
562 562
563 563 $ hg debugobsolete --hidden --rev 3
564 564 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
565 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
565 566 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
566 567 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
567 568 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
568 569 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
569 570 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
570 571
571 572 List of both
572 573
573 574 $ hg debugobsolete --hidden --rev 3::6
574 575 1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
576 1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {'user': 'test'}
575 577 245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:44 1970 -0000) {'user': 'test'}
576 578 5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
577 579 94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {'user': 'test'}
578 580 ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {'user': 'test'}
579 581 cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {'user': 'test'} (glob)
580 582 cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {'user': 'test'}
581 583
582 584 #if serve
583 585
584 586 check hgweb does not explode
585 587 ====================================
586 588
587 589 $ hg unbundle $TESTDIR/bundles/hgweb+obs.hg
588 590 adding changesets
589 591 adding manifests
590 592 adding file changes
591 593 added 62 changesets with 63 changes to 9 files (+60 heads)
592 594 (run 'hg heads .' to see heads, 'hg merge' to merge)
593 595 $ for node in `hg log -r 'desc(babar_)' --template '{node}\n'`;
594 596 > do
595 597 > hg debugobsolete $node
596 598 > done
597 599 $ hg up tip
598 600 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
599 601
600 602 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
601 603 $ cat hg.pid >> $DAEMON_PIDS
602 604
603 605 check changelog view
604 606
605 607 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'shortlog/'
606 608 200 Script output follows
607 609
608 610 check graph view
609 611
610 612 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'graph'
611 613 200 Script output follows
612 614
613 615 check filelog view
614 616
615 617 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'log/'`hg id --debug --id`/'babar'
616 618 200 Script output follows
617 619
618 620 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/68'
619 621 200 Script output follows
620 622 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/67'
621 623 404 Not Found
622 624 [1]
623 625
624 626 check that web.view config option:
625 627
626 628 $ "$TESTDIR/killdaemons.py" hg.pid
627 629 $ cat >> .hg/hgrc << EOF
628 630 > [web]
629 631 > view=all
630 632 > EOF
631 633 $ wait
632 634 $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
633 635 $ "$TESTDIR/get-with-headers.py" --headeronly localhost:$HGPORT 'rev/67'
634 636 200 Script output follows
635 637 $ "$TESTDIR/killdaemons.py" hg.pid
636 638
637 639 Checking _enable=False warning if obsolete marker exists
638 640
639 641 $ echo '[extensions]' >> $HGRCPATH
640 642 $ echo "obs=!" >> $HGRCPATH
641 643 $ hg log -r tip
642 644 obsolete feature not enabled but 68 markers found!
643 645 68:c15e9edfca13 (draft) [tip ] add celestine
644 646
645 647 reenable for later test
646 648
647 649 $ echo '[extensions]' >> $HGRCPATH
648 650 $ echo "obs=${TESTTMP}/obs.py" >> $HGRCPATH
649 651
650 652 #endif
651 653
652 654 Test incoming/outcoming with changesets obsoleted remotely, known locally
653 655 ===============================================================================
654 656
655 657 This test issue 3805
656 658
657 659 $ hg init repo-issue3805
658 660 $ cd repo-issue3805
659 661 $ echo "foo" > foo
660 662 $ hg ci -Am "A"
661 663 adding foo
662 664 $ hg clone . ../other-issue3805
663 665 updating to branch default
664 666 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
665 667 $ echo "bar" >> foo
666 668 $ hg ci --amend
667 669 $ cd ../other-issue3805
668 670 $ hg log -G
669 671 @ 0:193e9254ce7e (draft) [tip ] A
670 672
671 673 $ hg log -G -R ../repo-issue3805
672 674 @ 2:3816541e5485 (draft) [tip ] A
673 675
674 676 $ hg incoming
675 677 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
676 678 searching for changes
677 679 2:3816541e5485 (draft) [tip ] A
678 680 $ hg incoming --bundle ../issue3805.hg
679 681 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
680 682 searching for changes
681 683 2:3816541e5485 (draft) [tip ] A
682 684 $ hg outgoing
683 685 comparing with $TESTTMP/tmpe/repo-issue3805 (glob)
684 686 searching for changes
685 687 no changes found
686 688 [1]
687 689
688 690 #if serve
689 691
690 692 $ hg serve -R ../repo-issue3805 -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
691 693 $ cat hg.pid >> $DAEMON_PIDS
692 694
693 695 $ hg incoming http://localhost:$HGPORT
694 696 comparing with http://localhost:$HGPORT/
695 697 searching for changes
696 698 1:3816541e5485 (public) [tip ] A
697 699 $ hg outgoing http://localhost:$HGPORT
698 700 comparing with http://localhost:$HGPORT/
699 701 searching for changes
700 702 no changes found
701 703 [1]
702 704
703 705 $ "$TESTDIR/killdaemons.py" $DAEMON_PIDS
704 706
705 707 #endif
706 708
707 709 This test issue 3814
708 710
709 711 (nothing to push but locally hidden changeset)
710 712
711 713 $ cd ..
712 714 $ hg init repo-issue3814
713 715 $ cd repo-issue3805
714 716 $ hg push -r 3816541e5485 ../repo-issue3814
715 717 pushing to ../repo-issue3814
716 718 searching for changes
717 719 adding changesets
718 720 adding manifests
719 721 adding file changes
720 722 added 1 changesets with 1 changes to 1 files
721 723 $ hg out ../repo-issue3814
722 724 comparing with ../repo-issue3814
723 725 searching for changes
724 726 no changes found
725 727 [1]
726 728
727 729 Test that a local tag blocks a changeset from being hidden
728 730
729 731 $ hg tag -l visible -r 0 --hidden
730 732 $ hg log -G
731 733 @ 2:3816541e5485 (draft) [tip ] A
732 734
733 735 x 0:193e9254ce7e (draft) [visible ] A
734 736
735 737 Test that removing a local tag does not cause some commands to fail
736 738
737 739 $ hg tag -l -r tip tiptag
738 740 $ hg tags
739 741 tiptag 2:3816541e5485
740 742 tip 2:3816541e5485
741 743 visible 0:193e9254ce7e
742 744 $ hg --config extensions.strip= strip -r tip --no-backup
743 745 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
744 746 $ hg tags
745 747 visible 0:193e9254ce7e
746 748 tip 0:193e9254ce7e
General Comments 0
You need to be logged in to leave comments. Login now