##// END OF EJS Templates
tests: run test-copies-chain-merge.t also with copies in changesets...
Martin von Zweigbergk -
r46296:5e72827d default
parent child Browse files
Show More
@@ -1,1201 +1,1310 b''
1 #testcases filelog compatibility sidedata
1 #testcases filelog compatibility changeset sidedata
2 2
3 3 =====================================================
4 4 Test Copy tracing for chain of copies involving merge
5 5 =====================================================
6 6
7 7 This test files covers copies/rename case for a chains of commit where merges
8 8 are involved. It cheks we do not have unwanted update of behavior and that the
9 9 different options to retrieve copies behave correctly.
10 10
11 11
12 12 Setup
13 13 =====
14 14
15 15 use git diff to see rename
16 16
17 17 $ cat << EOF >> $HGRCPATH
18 18 > [diff]
19 19 > git=yes
20 20 > [ui]
21 21 > logtemplate={rev} {desc}\n
22 22 > EOF
23 23
24 24 #if compatibility
25 25 $ cat >> $HGRCPATH << EOF
26 26 > [experimental]
27 27 > copies.read-from = compatibility
28 28 > EOF
29 29 #endif
30 30
31 #if changeset
32 $ cat >> $HGRCPATH << EOF
33 > [experimental]
34 > copies.read-from = changeset-only
35 > copies.write-to = changeset-only
36 > EOF
37 #endif
38
31 39 #if sidedata
32 40 $ cat >> $HGRCPATH << EOF
33 41 > [format]
34 42 > exp-use-side-data = yes
35 43 > exp-use-copies-side-data-changeset = yes
36 44 > EOF
37 45 #endif
38 46
39 47
40 48 $ hg init repo-chain
41 49 $ cd repo-chain
42 50
43 51 Add some linear rename initialy
44 52
45 53 $ echo a > a
46 54 $ echo b > b
47 55 $ echo h > h
48 56 $ hg ci -Am 'i-0 initial commit: a b h'
49 57 adding a
50 58 adding b
51 59 adding h
52 60 $ hg mv a c
53 61 $ hg ci -Am 'i-1: a -move-> c'
54 62 $ hg mv c d
55 63 $ hg ci -Am 'i-2: c -move-> d'
56 64 $ hg log -G
57 65 @ 2 i-2: c -move-> d
58 66 |
59 67 o 1 i-1: a -move-> c
60 68 |
61 69 o 0 i-0 initial commit: a b h
62 70
63 71
64 72 And having another branch with renames on the other side
65 73
66 74 $ hg mv d e
67 75 $ hg ci -Am 'a-1: d -move-> e'
68 76 $ hg mv e f
69 77 $ hg ci -Am 'a-2: e -move-> f'
70 78 $ hg log -G --rev '::.'
71 79 @ 4 a-2: e -move-> f
72 80 |
73 81 o 3 a-1: d -move-> e
74 82 |
75 83 o 2 i-2: c -move-> d
76 84 |
77 85 o 1 i-1: a -move-> c
78 86 |
79 87 o 0 i-0 initial commit: a b h
80 88
81 89
82 90 Have a branching with nothing on one side
83 91
84 92 $ hg up 'desc("i-2")'
85 93 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
86 94 $ echo foo > b
87 95 $ hg ci -m 'b-1: b update'
88 96 created new head
89 97 $ hg log -G --rev '::.'
90 98 @ 5 b-1: b update
91 99 |
92 100 o 2 i-2: c -move-> d
93 101 |
94 102 o 1 i-1: a -move-> c
95 103 |
96 104 o 0 i-0 initial commit: a b h
97 105
98 106
99 107 Create a branch that delete a file previous renamed
100 108
101 109 $ hg up 'desc("i-2")'
102 110 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
103 111 $ hg rm d
104 112 $ hg ci -m 'c-1 delete d'
105 113 created new head
106 114 $ hg log -G --rev '::.'
107 115 @ 6 c-1 delete d
108 116 |
109 117 o 2 i-2: c -move-> d
110 118 |
111 119 o 1 i-1: a -move-> c
112 120 |
113 121 o 0 i-0 initial commit: a b h
114 122
115 123
116 124 Create a branch that delete a file previous renamed and recreate it
117 125
118 126 $ hg up 'desc("i-2")'
119 127 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
120 128 $ hg rm d
121 129 $ hg ci -m 'd-1 delete d'
122 130 created new head
123 131 $ echo bar > d
124 132 $ hg add d
125 133 $ hg ci -m 'd-2 re-add d'
126 134 $ hg log -G --rev '::.'
127 135 @ 8 d-2 re-add d
128 136 |
129 137 o 7 d-1 delete d
130 138 |
131 139 o 2 i-2: c -move-> d
132 140 |
133 141 o 1 i-1: a -move-> c
134 142 |
135 143 o 0 i-0 initial commit: a b h
136 144
137 145
138 146 Having another branch renaming a different file to the same filename as another
139 147
140 148 $ hg up 'desc("i-2")'
141 149 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
142 150 $ hg mv b g
143 151 $ hg ci -m 'e-1 b -move-> g'
144 152 created new head
145 153 $ hg mv g f
146 154 $ hg ci -m 'e-2 g -move-> f'
147 155 $ hg log -G --rev '::.'
148 156 @ 10 e-2 g -move-> f
149 157 |
150 158 o 9 e-1 b -move-> g
151 159 |
152 160 o 2 i-2: c -move-> d
153 161 |
154 162 o 1 i-1: a -move-> c
155 163 |
156 164 o 0 i-0 initial commit: a b h
157 165
158 166
159 167 merging with unrelated change does not interfere with the renames
160 168 ---------------------------------------------------------------
161 169
162 170 - rename on one side
163 171 - unrelated change on the other side
164 172
165 173 $ hg up 'desc("b-1")'
166 174 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
167 175 $ hg merge 'desc("a-2")'
168 176 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
169 177 (branch merge, don't forget to commit)
170 178 $ hg ci -m 'mBAm-0 simple merge - one way'
171 179 $ hg up 'desc("a-2")'
172 180 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
173 181 $ hg merge 'desc("b-1")'
174 182 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
175 183 (branch merge, don't forget to commit)
176 184 $ hg ci -m 'mABm-0 simple merge - the other way'
177 185 created new head
178 186 $ hg log -G --rev '::(desc("mABm")+desc("mBAm"))'
179 187 @ 12 mABm-0 simple merge - the other way
180 188 |\
181 189 +---o 11 mBAm-0 simple merge - one way
182 190 | |/
183 191 | o 5 b-1: b update
184 192 | |
185 193 o | 4 a-2: e -move-> f
186 194 | |
187 195 o | 3 a-1: d -move-> e
188 196 |/
189 197 o 2 i-2: c -move-> d
190 198 |
191 199 o 1 i-1: a -move-> c
192 200 |
193 201 o 0 i-0 initial commit: a b h
194 202
195 203
196 204 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mABm")'
197 205 A f
198 206 d
199 207 R d
200 208 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBAm")'
201 209 A f
202 210 d
203 211 R d
204 212 $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mABm")'
205 213 M b
206 214 $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mBAm")'
207 215 M b
208 216 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mABm")'
209 217 M b
210 218 A f
211 219 d
212 220 R d
213 221 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBAm")'
214 222 M b
215 223 A f
216 224 d
217 225 R d
218 226 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mABm")'
219 227 M b
220 228 A f
221 229 a
222 230 R a
223 231 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBAm")'
224 232 M b
225 233 A f
226 234 a
227 235 R a
228 236
229 237 merging with the side having a delete
230 238 -------------------------------------
231 239
232 240 case summary:
233 241 - one with change to an unrelated file
234 242 - one deleting the change
235 243 and recreate an unrelated file after the merge
236 244
237 245 $ hg up 'desc("b-1")'
238 246 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
239 247 $ hg merge 'desc("c-1")'
240 248 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
241 249 (branch merge, don't forget to commit)
242 250 $ hg ci -m 'mBCm-0 simple merge - one way'
243 251 $ echo bar > d
244 252 $ hg add d
245 253 $ hg ci -m 'mBCm-1 re-add d'
246 254 $ hg up 'desc("c-1")'
247 255 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
248 256 $ hg merge 'desc("b-1")'
249 257 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
250 258 (branch merge, don't forget to commit)
251 259 $ hg ci -m 'mCBm-0 simple merge - the other way'
252 260 created new head
253 261 $ echo bar > d
254 262 $ hg add d
255 263 $ hg ci -m 'mCBm-1 re-add d'
256 264 $ hg log -G --rev '::(desc("mCBm")+desc("mBCm"))'
257 265 @ 16 mCBm-1 re-add d
258 266 |
259 267 o 15 mCBm-0 simple merge - the other way
260 268 |\
261 269 | | o 14 mBCm-1 re-add d
262 270 | | |
263 271 +---o 13 mBCm-0 simple merge - one way
264 272 | |/
265 273 | o 6 c-1 delete d
266 274 | |
267 275 o | 5 b-1: b update
268 276 |/
269 277 o 2 i-2: c -move-> d
270 278 |
271 279 o 1 i-1: a -move-> c
272 280 |
273 281 o 0 i-0 initial commit: a b h
274 282
275 283 - comparing from the merge
276 284
277 285 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBCm-0")'
278 286 R d
279 287 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCBm-0")'
280 288 R d
281 289 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBCm-0")'
282 290 M b
283 291 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCBm-0")'
284 292 M b
285 293 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBCm-0")'
286 294 M b
287 295 R d
288 296 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mCBm-0")'
289 297 M b
290 298 R d
291 299 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBCm-0")'
292 300 M b
293 301 R a
294 302 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCBm-0")'
295 303 M b
296 304 R a
297 305
298 306 - comparing with the merge children re-adding the file
299 307
300 308 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBCm-1")'
301 309 M d
302 310 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCBm-1")'
303 311 M d
304 312 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBCm-1")'
305 313 M b
306 314 A d
307 315 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCBm-1")'
308 316 M b
309 317 A d
310 318 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBCm-1")'
311 319 M b
312 320 M d
313 321 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mCBm-1")'
314 322 M b
315 323 M d
316 324 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBCm-1")'
317 325 M b
318 326 A d
319 327 R a
320 328 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCBm-1")'
321 329 M b
322 330 A d
323 331 R a
324 332
325 333 Comparing with a merge re-adding the file afterward
326 334 ---------------------------------------------------
327 335
328 336 Merge:
329 337 - one with change to an unrelated file
330 338 - one deleting and recreating the change
331 339
332 340 $ hg up 'desc("b-1")'
333 341 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
334 342 $ hg merge 'desc("d-2")'
335 343 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
336 344 (branch merge, don't forget to commit)
337 345 $ hg ci -m 'mBDm-0 simple merge - one way'
338 346 $ hg up 'desc("d-2")'
339 347 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
340 348 $ hg merge 'desc("b-1")'
341 349 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
342 350 (branch merge, don't forget to commit)
343 351 $ hg ci -m 'mDBm-0 simple merge - the other way'
344 352 created new head
345 353 $ hg log -G --rev '::(desc("mDBm")+desc("mBDm"))'
346 354 @ 18 mDBm-0 simple merge - the other way
347 355 |\
348 356 +---o 17 mBDm-0 simple merge - one way
349 357 | |/
350 358 | o 8 d-2 re-add d
351 359 | |
352 360 | o 7 d-1 delete d
353 361 | |
354 362 o | 5 b-1: b update
355 363 |/
356 364 o 2 i-2: c -move-> d
357 365 |
358 366 o 1 i-1: a -move-> c
359 367 |
360 368 o 0 i-0 initial commit: a b h
361 369
362 370 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBDm-0")'
363 371 M d
364 372 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mDBm-0")'
365 373 M d
366 374 $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mBDm-0")'
367 375 M b
368 376 $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mDBm-0")'
369 377 M b
370 378 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mBDm-0")'
371 379 M b
372 380 M d
373 381 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mDBm-0")'
374 382 M b
375 383 M d
376 384
377 385 The bugs makes recorded copy is different depending of where we started the merge from since
378 386
379 387 $ hg manifest --debug --rev 'desc("mBDm-0")' | grep '644 d'
380 388 b004912a8510032a0350a74daa2803dadfb00e12 644 d
381 389 $ hg manifest --debug --rev 'desc("mDBm-0")' | grep '644 d'
382 390 b004912a8510032a0350a74daa2803dadfb00e12 644 d
383 391
384 392 $ hg manifest --debug --rev 'desc("d-2")' | grep '644 d'
385 393 b004912a8510032a0350a74daa2803dadfb00e12 644 d
386 394 $ hg manifest --debug --rev 'desc("b-1")' | grep '644 d'
387 169be882533bc917905d46c0c951aa9a1e288dcf 644 d
395 169be882533bc917905d46c0c951aa9a1e288dcf 644 d (no-changeset !)
396 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 d (changeset !)
388 397 $ hg debugindex d
389 398 rev linkrev nodeid p1 p2
390 0 2 169be882533b 000000000000 000000000000
399 0 2 169be882533b 000000000000 000000000000 (no-changeset !)
400 0 2 b789fdd96dc2 000000000000 000000000000 (changeset !)
391 401 1 8 b004912a8510 000000000000 000000000000
392 402
393 403 Log output should not include a merge commit as it did not happen
394 404
405 #if no-changeset
406 $ hg log -Gfr 'desc("mBDm-0")' d
407 o 8 d-2 re-add d
408 |
409 ~
410 #else
395 411 $ hg log -Gfr 'desc("mBDm-0")' d
396 412 o 8 d-2 re-add d
397 413 |
398 414 ~
415 #endif
399 416
417 #if no-changeset
400 418 $ hg log -Gfr 'desc("mDBm-0")' d
401 419 o 8 d-2 re-add d
402 420 |
403 421 ~
422 #else
423 $ hg log -Gfr 'desc("mDBm-0")' d
424 o 8 d-2 re-add d
425 |
426 ~
427 #endif
404 428
405 429 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBDm-0")'
406 430 M b
407 431 A d
408 432 R a
409 433 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDBm-0")'
410 434 M b
411 435 A d
412 436 R a
413 437
414 438
415 439 Comparing with a merge with colliding rename
416 440 --------------------------------------------
417 441
418 442 - the "e-" branch renaming b to f (through 'g')
419 443 - the "a-" branch renaming d to f (through e)
420 444
421 445 $ hg up 'desc("a-2")'
422 446 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
423 447 $ hg merge 'desc("e-2")' --tool :union
424 448 merging f
425 449 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
426 450 (branch merge, don't forget to commit)
427 451 $ hg ci -m 'mAEm-0 simple merge - one way'
428 452 $ hg up 'desc("e-2")'
429 453 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
430 454 $ hg merge 'desc("a-2")' --tool :union
431 455 merging f
432 456 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
433 457 (branch merge, don't forget to commit)
434 458 $ hg ci -m 'mEAm-0 simple merge - the other way'
435 459 created new head
436 460 $ hg log -G --rev '::(desc("mAEm")+desc("mEAm"))'
437 461 @ 20 mEAm-0 simple merge - the other way
438 462 |\
439 463 +---o 19 mAEm-0 simple merge - one way
440 464 | |/
441 465 | o 10 e-2 g -move-> f
442 466 | |
443 467 | o 9 e-1 b -move-> g
444 468 | |
445 469 o | 4 a-2: e -move-> f
446 470 | |
447 471 o | 3 a-1: d -move-> e
448 472 |/
449 473 o 2 i-2: c -move-> d
450 474 |
451 475 o 1 i-1: a -move-> c
452 476 |
453 477 o 0 i-0 initial commit: a b h
454 478
479 #if no-changeset
455 480 $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644 f'
456 481 c39c6083dad048d5138618a46f123e2f397f4f18 644 f
457 482 $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644 f'
458 483 a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644 f
459 484 $ hg manifest --debug --rev 'desc("a-2")' | grep '644 f'
460 485 263ea25e220aaeb7b9bac551c702037849aa75e8 644 f
461 486 $ hg manifest --debug --rev 'desc("e-2")' | grep '644 f'
462 487 71b9b7e73d973572ade6dd765477fcee6890e8b1 644 f
463 488 $ hg debugindex f
464 489 rev linkrev nodeid p1 p2
465 490 0 4 263ea25e220a 000000000000 000000000000
466 491 1 10 71b9b7e73d97 000000000000 000000000000
467 492 2 19 c39c6083dad0 263ea25e220a 71b9b7e73d97
468 493 3 20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
494 #else
495 $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644 f'
496 498e8799f49f9da1ca06bb2d6d4accf165c5b572 644 f
497 $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644 f'
498 c5b506a7118667a38a9c9348a1f63b679e382f57 644 f
499 $ hg manifest --debug --rev 'desc("a-2")' | grep '644 f'
500 b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644 f
501 $ hg manifest --debug --rev 'desc("e-2")' | grep '644 f'
502 1e88685f5ddec574a34c70af492f95b6debc8741 644 f
503 $ hg debugindex f
504 rev linkrev nodeid p1 p2
505 0 4 b789fdd96dc2 000000000000 000000000000
506 1 10 1e88685f5dde 000000000000 000000000000
507 2 19 498e8799f49f b789fdd96dc2 1e88685f5dde
508 3 20 c5b506a71186 1e88685f5dde b789fdd96dc2
509 #endif
469 510
470 511 # Here the filelog based implementation is not looking at the rename
471 512 # information (because the file exist on both side). However the changelog
472 513 # based on works fine. We have different output.
473 514
474 515 $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mAEm-0")'
475 516 M f
476 517 b (no-filelog !)
477 518 R b
478 519 $ hg status --copies --rev 'desc("a-2")' --rev 'desc("mEAm-0")'
479 520 M f
480 521 b (no-filelog !)
481 522 R b
482 523 $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mAEm-0")'
483 524 M f
484 525 d (no-filelog !)
485 526 R d
486 527 $ hg status --copies --rev 'desc("e-2")' --rev 'desc("mEAm-0")'
487 528 M f
488 529 d (no-filelog !)
489 530 R d
490 531 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("a-2")'
491 532 A f
492 533 d
493 534 R d
494 535 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("e-2")'
495 536 A f
496 537 b
497 538 R b
498 539
499 540 # From here, we run status against revision where both source file exists.
500 541 #
501 542 # The filelog based implementation picks an arbitrary side based on revision
502 543 # numbers. So the same side "wins" whatever the parents order is. This is
503 544 # sub-optimal because depending on revision numbers means the result can be
504 545 # different from one repository to the next.
505 546 #
506 547 # The changeset based algorithm use the parent order to break tie on conflicting
507 548 # information and will have a different order depending on who is p1 and p2.
508 549 # That order is stable accross repositories. (data from p1 prevails)
509 550
510 551 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mAEm-0")'
511 552 A f
512 553 d
513 554 R b
514 555 R d
515 556 $ hg status --copies --rev 'desc("i-2")' --rev 'desc("mEAm-0")'
516 557 A f
517 558 d (filelog !)
518 559 b (no-filelog !)
519 560 R b
520 561 R d
521 562 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
522 563 A f
523 564 a
524 565 R a
525 566 R b
526 567 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mEAm-0")'
527 568 A f
528 569 a (filelog !)
529 570 b (no-filelog !)
530 571 R a
531 572 R b
532 573
533 574
534 575 Note:
535 576 | In this case, one of the merge wrongly record a merge while there is none.
536 577 | This lead to bad copy tracing information to be dug up.
537 578
538 579
539 580 Merge:
540 581 - one with change to an unrelated file (b)
541 582 - one overwriting a file (d) with a rename (from h to i to d)
542 583
543 584 $ hg up 'desc("i-2")'
544 585 2 files updated, 0 files merged, 1 files removed, 0 files unresolved
545 586 $ hg mv h i
546 587 $ hg commit -m "f-1: rename h -> i"
547 588 created new head
548 589 $ hg mv --force i d
549 590 $ hg commit -m "f-2: rename i -> d"
550 591 $ hg debugindex d
551 592 rev linkrev nodeid p1 p2
552 0 2 169be882533b 000000000000 000000000000
593 0 2 169be882533b 000000000000 000000000000 (no-changeset !)
594 0 2 b789fdd96dc2 000000000000 000000000000 (changeset !)
553 595 1 8 b004912a8510 000000000000 000000000000
554 2 22 4a067cf8965d 000000000000 000000000000
596 2 22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
597 2 22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
555 598 $ hg up 'desc("b-1")'
556 599 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
557 600 $ hg merge 'desc("f-2")'
558 601 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
559 602 (branch merge, don't forget to commit)
560 603 $ hg ci -m 'mBFm-0 simple merge - one way'
561 604 $ hg up 'desc("f-2")'
562 605 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
563 606 $ hg merge 'desc("b-1")'
564 607 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
565 608 (branch merge, don't forget to commit)
566 609 $ hg ci -m 'mFBm-0 simple merge - the other way'
567 610 created new head
568 611 $ hg log -G --rev '::(desc("mBFm")+desc("mFBm"))'
569 612 @ 24 mFBm-0 simple merge - the other way
570 613 |\
571 614 +---o 23 mBFm-0 simple merge - one way
572 615 | |/
573 616 | o 22 f-2: rename i -> d
574 617 | |
575 618 | o 21 f-1: rename h -> i
576 619 | |
577 620 o | 5 b-1: b update
578 621 |/
579 622 o 2 i-2: c -move-> d
580 623 |
581 624 o 1 i-1: a -move-> c
582 625 |
583 626 o 0 i-0 initial commit: a b h
584 627
585 628 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBFm-0")'
586 629 M b
587 630 A d
588 631 h
589 632 R a
590 633 R h
591 634 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFBm-0")'
592 635 M b
593 636 A d
594 637 h
595 638 R a
596 639 R h
597 640 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBFm-0")'
598 641 M d
599 642 h (no-filelog !)
600 643 R h
601 644 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mBFm-0")'
602 645 M b
603 646 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mBFm-0")'
604 647 M b
605 648 M d
606 649 i (no-filelog !)
607 650 R i
608 651 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mFBm-0")'
609 652 M d
610 653 h (no-filelog !)
611 654 R h
612 655 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFBm-0")'
613 656 M b
614 657 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFBm-0")'
615 658 M b
616 659 M d
617 660 i (no-filelog !)
618 661 R i
619 662
663 #if no-changeset
620 664 $ hg log -Gfr 'desc("mBFm-0")' d
621 665 o 22 f-2: rename i -> d
622 666 |
623 667 o 21 f-1: rename h -> i
624 668 :
625 669 o 0 i-0 initial commit: a b h
626 670
671 #else
672 $ hg log -Gfr 'desc("mBFm-0")' d
673 o 22 f-2: rename i -> d
674 |
675 ~
676 #endif
627 677
678 #if no-changeset
628 679 $ hg log -Gfr 'desc("mFBm-0")' d
629 680 o 22 f-2: rename i -> d
630 681 |
631 682 o 21 f-1: rename h -> i
632 683 :
633 684 o 0 i-0 initial commit: a b h
634 685
686 #else
687 $ hg log -Gfr 'desc("mFBm-0")' d
688 o 22 f-2: rename i -> d
689 |
690 ~
691 #endif
635 692
636 693
637 694 Merge:
638 695 - one with change to a file
639 696 - one deleting and recreating the file
640 697
641 698 Unlike in the 'BD/DB' cases, an actual merge happened here. So we should
642 699 consider history and rename on both branch of the merge.
643 700
644 701 $ hg up 'desc("i-2")'
645 702 3 files updated, 0 files merged, 0 files removed, 0 files unresolved
646 703 $ echo "some update" >> d
647 704 $ hg commit -m "g-1: update d"
648 705 created new head
649 706 $ hg up 'desc("d-2")'
650 707 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
651 708 $ hg merge 'desc("g-1")' --tool :union
652 709 merging d
653 710 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
654 711 (branch merge, don't forget to commit)
655 712 $ hg ci -m 'mDGm-0 simple merge - one way'
656 713 $ hg up 'desc("g-1")'
657 714 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
658 715 $ hg merge 'desc("d-2")' --tool :union
659 716 merging d
660 717 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
661 718 (branch merge, don't forget to commit)
662 719 $ hg ci -m 'mGDm-0 simple merge - the other way'
663 720 created new head
664 721 $ hg log -G --rev '::(desc("mDGm")+desc("mGDm"))'
665 722 @ 27 mGDm-0 simple merge - the other way
666 723 |\
667 724 +---o 26 mDGm-0 simple merge - one way
668 725 | |/
669 726 | o 25 g-1: update d
670 727 | |
671 728 o | 8 d-2 re-add d
672 729 | |
673 730 o | 7 d-1 delete d
674 731 |/
675 732 o 2 i-2: c -move-> d
676 733 |
677 734 o 1 i-1: a -move-> c
678 735 |
679 736 o 0 i-0 initial commit: a b h
680 737
681 738 One side of the merge have a long history with rename. The other side of the
682 739 merge point to a new file with a smaller history. Each side is "valid".
683 740
684 741 (and again the filelog based algorithm only explore one, with a pick based on
685 742 revision numbers)
686 743
687 744 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
688 745 A d
689 746 a (filelog !)
690 747 R a
691 748 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
692 749 A d
693 750 a
694 751 R a
695 752 $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mDGm-0")'
696 753 M d
697 754 $ hg status --copies --rev 'desc("d-2")' --rev 'desc("mGDm-0")'
698 755 M d
699 756 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mDGm-0")'
700 757 M d
701 758 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGDm-0")'
702 759 M d
703 760
761 #if no-changeset
704 762 $ hg log -Gfr 'desc("mDGm-0")' d
705 763 o 26 mDGm-0 simple merge - one way
706 764 |\
707 765 | o 25 g-1: update d
708 766 | |
709 767 o | 8 d-2 re-add d
710 768 |/
711 769 o 2 i-2: c -move-> d
712 770 |
713 771 o 1 i-1: a -move-> c
714 772 |
715 773 o 0 i-0 initial commit: a b h
716 774
775 #else
776 $ hg log -Gfr 'desc("mDGm-0")' d
777 o 26 mDGm-0 simple merge - one way
778 |\
779 | o 25 g-1: update d
780 | |
781 o | 8 d-2 re-add d
782 |/
783 o 2 i-2: c -move-> d
784 |
785 ~
786 #endif
717 787
718 788
789 #if no-changeset
719 790 $ hg log -Gfr 'desc("mDGm-0")' d
720 791 o 26 mDGm-0 simple merge - one way
721 792 |\
722 793 | o 25 g-1: update d
723 794 | |
724 795 o | 8 d-2 re-add d
725 796 |/
726 797 o 2 i-2: c -move-> d
727 798 |
728 799 o 1 i-1: a -move-> c
729 800 |
730 801 o 0 i-0 initial commit: a b h
731 802
803 #else
804 $ hg log -Gfr 'desc("mDGm-0")' d
805 o 26 mDGm-0 simple merge - one way
806 |\
807 | o 25 g-1: update d
808 | |
809 o | 8 d-2 re-add d
810 |/
811 o 2 i-2: c -move-> d
812 |
813 ~
814 #endif
732 815
733 816
734 817 Merge:
735 818 - one with change to a file (d)
736 819 - one overwriting that file with a rename (from h to i, to d)
737 820
738 821 This case is similar to BF/FB, but an actual merge happens, so both side of the
739 822 history are relevant.
740 823
741 824 Note:
742 825 | In this case, the merge get conflicting information since on one side we have
743 826 | "a -> c -> d". and one the other one we have "h -> i -> d".
744 827 |
745 828 | The current code arbitrarily pick one side
746 829
747 830 $ hg up 'desc("f-2")'
748 831 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
749 832 $ hg merge 'desc("g-1")' --tool :union
750 833 merging d
751 834 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
752 835 (branch merge, don't forget to commit)
753 836 $ hg ci -m 'mFGm-0 simple merge - one way'
754 837 created new head
755 838 $ hg up 'desc("g-1")'
756 839 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
757 840 $ hg merge 'desc("f-2")' --tool :union
758 841 merging d
759 842 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
760 843 (branch merge, don't forget to commit)
761 844 $ hg ci -m 'mGFm-0 simple merge - the other way'
762 845 created new head
763 846 $ hg log -G --rev '::(desc("mGFm")+desc("mFGm"))'
764 847 @ 29 mGFm-0 simple merge - the other way
765 848 |\
766 849 +---o 28 mFGm-0 simple merge - one way
767 850 | |/
768 851 | o 25 g-1: update d
769 852 | |
770 853 o | 22 f-2: rename i -> d
771 854 | |
772 855 o | 21 f-1: rename h -> i
773 856 |/
774 857 o 2 i-2: c -move-> d
775 858 |
776 859 o 1 i-1: a -move-> c
777 860 |
778 861 o 0 i-0 initial commit: a b h
779 862
780 863 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mFGm-0")'
781 864 A d
782 865 h
783 866 R a
784 867 R h
785 868 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGFm-0")'
786 869 A d
787 870 a (no-filelog !)
788 871 h (filelog !)
789 872 R a
790 873 R h
791 874 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
792 875 M d
793 876 $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mGFm-0")'
794 877 M d
795 878 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mFGm-0")'
796 879 M d
797 880 i (no-filelog !)
798 881 R i
799 882 $ hg status --copies --rev 'desc("f-1")' --rev 'desc("mGFm-0")'
800 883 M d
801 884 i (no-filelog !)
802 885 R i
803 886 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mFGm-0")'
804 887 M d
805 888 h (no-filelog !)
806 889 R h
807 890 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGFm-0")'
808 891 M d
809 892 h (no-filelog !)
810 893 R h
811 894
895 #if no-changeset
812 896 $ hg log -Gfr 'desc("mFGm-0")' d
813 897 o 28 mFGm-0 simple merge - one way
814 898 |\
815 899 | o 25 g-1: update d
816 900 | |
817 901 o | 22 f-2: rename i -> d
818 902 | |
819 903 o | 21 f-1: rename h -> i
820 904 |/
821 905 o 2 i-2: c -move-> d
822 906 |
823 907 o 1 i-1: a -move-> c
824 908 |
825 909 o 0 i-0 initial commit: a b h
826 910
911 #else
912 $ hg log -Gfr 'desc("mFGm-0")' d
913 o 28 mFGm-0 simple merge - one way
914 |\
915 | o 25 g-1: update d
916 | |
917 o | 22 f-2: rename i -> d
918 |/
919 o 2 i-2: c -move-> d
920 |
921 ~
922 #endif
827 923
924 #if no-changeset
828 925 $ hg log -Gfr 'desc("mGFm-0")' d
829 926 @ 29 mGFm-0 simple merge - the other way
830 927 |\
831 928 | o 25 g-1: update d
832 929 | |
833 930 o | 22 f-2: rename i -> d
834 931 | |
835 932 o | 21 f-1: rename h -> i
836 933 |/
837 934 o 2 i-2: c -move-> d
838 935 |
839 936 o 1 i-1: a -move-> c
840 937 |
841 938 o 0 i-0 initial commit: a b h
842 939
940 #else
941 $ hg log -Gfr 'desc("mGFm-0")' d
942 @ 29 mGFm-0 simple merge - the other way
943 |\
944 | o 25 g-1: update d
945 | |
946 o | 22 f-2: rename i -> d
947 |/
948 o 2 i-2: c -move-> d
949 |
950 ~
951 #endif
843 952
844 953
845 954 Comparing with merging with a deletion (and keeping the file)
846 955 -------------------------------------------------------------
847 956
848 957 Merge:
849 958 - one removing a file (d)
850 959 - one updating that file
851 960 - the merge keep the modified version of the file (canceling the delete)
852 961
853 962 In this case, the file keep on living after the merge. So we should not drop its
854 963 copy tracing chain.
855 964
856 965 $ hg up 'desc("c-1")'
857 966 1 files updated, 0 files merged, 1 files removed, 0 files unresolved
858 967 $ hg merge 'desc("g-1")'
859 968 file 'd' was deleted in local [working copy] but was modified in other [merge rev].
860 969 You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
861 970 What do you want to do? u
862 971 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
863 972 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
864 973 [1]
865 974 $ hg resolve -t :other d
866 975 (no more unresolved files)
867 976 $ hg ci -m "mCGm-0"
868 977 created new head
869 978
870 979 $ hg up 'desc("g-1")'
871 980 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
872 981 $ hg merge 'desc("c-1")'
873 982 file 'd' was deleted in other [merge rev] but was modified in local [working copy].
874 983 You can use (c)hanged version, (d)elete, or leave (u)nresolved.
875 984 What do you want to do? u
876 985 0 files updated, 0 files merged, 0 files removed, 1 files unresolved
877 986 use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
878 987 [1]
879 988 $ hg resolve -t :local d
880 989 (no more unresolved files)
881 990 $ hg ci -m "mGCm-0"
882 991 created new head
883 992
884 993 $ hg log -G --rev '::(desc("mCGm")+desc("mGCm"))'
885 994 @ 31 mGCm-0
886 995 |\
887 996 +---o 30 mCGm-0
888 997 | |/
889 998 | o 25 g-1: update d
890 999 | |
891 1000 o | 6 c-1 delete d
892 1001 |/
893 1002 o 2 i-2: c -move-> d
894 1003 |
895 1004 o 1 i-1: a -move-> c
896 1005 |
897 1006 o 0 i-0 initial commit: a b h
898 1007
899 1008
900 1009 'a' is the copy source of 'd'
901 1010
902 1011 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
903 1012 A d
904 a (no-compatibility !)
1013 a (no-compatibility no-changeset !)
905 1014 R a
906 1015 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
907 1016 A d
908 a (no-compatibility !)
1017 a (no-compatibility no-changeset !)
909 1018 R a
910 1019 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
911 1020 A d
912 1021 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mGCm-0")'
913 1022 A d
914 1023 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mCGm-0")'
915 1024 $ hg status --copies --rev 'desc("g-1")' --rev 'desc("mGCm-0")'
916 1025
917 1026
918 1027 Comparing with merge restoring an untouched deleted file
919 1028 --------------------------------------------------------
920 1029
921 1030 Merge:
922 1031 - one removing a file (d)
923 1032 - one leaving the file untouched
924 1033 - the merge actively restore the file to the same content.
925 1034
926 1035 In this case, the file keep on living after the merge. So we should not drop its
927 1036 copy tracing chain.
928 1037
929 1038 $ hg up 'desc("c-1")'
930 1039 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
931 1040 $ hg merge 'desc("b-1")'
932 1041 1 files updated, 0 files merged, 0 files removed, 0 files unresolved
933 1042 (branch merge, don't forget to commit)
934 1043 $ hg revert --rev 'desc("b-1")' d
935 1044 $ hg ci -m "mCB-revert-m-0"
936 1045 created new head
937 1046
938 1047 $ hg up 'desc("b-1")'
939 1048 0 files updated, 0 files merged, 0 files removed, 0 files unresolved
940 1049 $ hg merge 'desc("c-1")'
941 1050 0 files updated, 0 files merged, 1 files removed, 0 files unresolved
942 1051 (branch merge, don't forget to commit)
943 1052 $ hg revert --rev 'desc("b-1")' d
944 1053 $ hg ci -m "mBC-revert-m-0"
945 1054 created new head
946 1055
947 1056 $ hg log -G --rev '::(desc("mCB-revert-m")+desc("mBC-revert-m"))'
948 1057 @ 33 mBC-revert-m-0
949 1058 |\
950 1059 +---o 32 mCB-revert-m-0
951 1060 | |/
952 1061 | o 6 c-1 delete d
953 1062 | |
954 1063 o | 5 b-1: b update
955 1064 |/
956 1065 o 2 i-2: c -move-> d
957 1066 |
958 1067 o 1 i-1: a -move-> c
959 1068 |
960 1069 o 0 i-0 initial commit: a b h
961 1070
962 1071
963 1072 'a' is the the copy source of 'd'
964 1073
965 1074 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCB-revert-m-0")'
966 1075 M b
967 1076 A d
968 a (no-compatibility !)
1077 a (no-compatibility no-changeset !)
969 1078 R a
970 1079 $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
971 1080 M b
972 1081 A d
973 a (no-compatibility !)
1082 a (no-compatibility no-changeset !)
974 1083 R a
975 1084 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
976 1085 M b
977 1086 A d
978 1087 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")'
979 1088 M b
980 1089 A d
981 1090 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")'
982 1091 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")'
983 1092
984 1093
985 1094 Test that sidedata computations during upgrades ares correct
986 1095 ============================================================
987 1096
988 1097 We upgrade a repository that is not using sidedata (the filelog case) and
989 1098 check that the same side data have been generated as if they were computed at
990 1099 commit time.
991 1100
992 1101
993 1102 #if filelog
994 1103 $ cat >> $HGRCPATH << EOF
995 1104 > [format]
996 1105 > exp-use-side-data = yes
997 1106 > exp-use-copies-side-data-changeset = yes
998 1107 > EOF
999 1108 $ hg debugformat -v
1000 1109 format-variant repo config default
1001 1110 fncache: yes yes yes
1002 1111 dotencode: yes yes yes
1003 1112 generaldelta: yes yes yes
1004 1113 sparserevlog: yes yes yes
1005 1114 sidedata: no yes no
1006 1115 persistent-nodemap: no no no
1007 1116 copies-sdc: no yes no
1008 1117 plain-cl-delta: yes yes yes
1009 1118 compression: * (glob)
1010 1119 compression-level: default default default
1011 1120 $ hg debugupgraderepo --run --quiet
1012 1121 upgrade will perform the following actions:
1013 1122
1014 1123 requirements
1015 1124 preserved: * (glob)
1016 1125 added: exp-copies-sidedata-changeset, exp-sidedata-flag
1017 1126
1018 1127 #endif
1019 1128
1020 1129
1021 #if no-compatibility
1130 #if no-compatibility no-changeset
1022 1131
1023 1132 $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do
1024 1133 > echo "##### revision $rev #####"
1025 1134 > hg debugsidedata -c -v -- $rev
1026 1135 > hg debugchangedfiles $rev
1027 1136 > done
1028 1137 ##### revision 0 #####
1029 1138 1 sidedata entries
1030 1139 entry-0014 size 34
1031 1140 '\x00\x00\x00\x03\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00abh'
1032 1141 added : a, ;
1033 1142 added : b, ;
1034 1143 added : h, ;
1035 1144 ##### revision 1 #####
1036 1145 1 sidedata entries
1037 1146 entry-0014 size 24
1038 1147 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ac'
1039 1148 removed : a, ;
1040 1149 added p1: c, a;
1041 1150 ##### revision 2 #####
1042 1151 1 sidedata entries
1043 1152 entry-0014 size 24
1044 1153 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00cd'
1045 1154 removed : c, ;
1046 1155 added p1: d, c;
1047 1156 ##### revision 3 #####
1048 1157 1 sidedata entries
1049 1158 entry-0014 size 24
1050 1159 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de'
1051 1160 removed : d, ;
1052 1161 added p1: e, d;
1053 1162 ##### revision 4 #####
1054 1163 1 sidedata entries
1055 1164 entry-0014 size 24
1056 1165 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef'
1057 1166 removed : e, ;
1058 1167 added p1: f, e;
1059 1168 ##### revision 5 #####
1060 1169 1 sidedata entries
1061 1170 entry-0014 size 14
1062 1171 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b'
1063 1172 touched : b, ;
1064 1173 ##### revision 6 #####
1065 1174 1 sidedata entries
1066 1175 entry-0014 size 14
1067 1176 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
1068 1177 removed : d, ;
1069 1178 ##### revision 7 #####
1070 1179 1 sidedata entries
1071 1180 entry-0014 size 14
1072 1181 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d'
1073 1182 removed : d, ;
1074 1183 ##### revision 8 #####
1075 1184 1 sidedata entries
1076 1185 entry-0014 size 14
1077 1186 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
1078 1187 added : d, ;
1079 1188 ##### revision 9 #####
1080 1189 1 sidedata entries
1081 1190 entry-0014 size 24
1082 1191 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg'
1083 1192 removed : b, ;
1084 1193 added p1: g, b;
1085 1194 ##### revision 10 #####
1086 1195 1 sidedata entries
1087 1196 entry-0014 size 24
1088 1197 '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg'
1089 1198 added p1: f, g;
1090 1199 removed : g, ;
1091 1200 ##### revision 11 #####
1092 1201 1 sidedata entries
1093 1202 entry-0014 size 4
1094 1203 '\x00\x00\x00\x00'
1095 1204 ##### revision 12 #####
1096 1205 1 sidedata entries
1097 1206 entry-0014 size 4
1098 1207 '\x00\x00\x00\x00'
1099 1208 ##### revision 13 #####
1100 1209 1 sidedata entries
1101 1210 entry-0014 size 4
1102 1211 '\x00\x00\x00\x00'
1103 1212 ##### revision 14 #####
1104 1213 1 sidedata entries
1105 1214 entry-0014 size 14
1106 1215 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
1107 1216 added : d, ;
1108 1217 ##### revision 15 #####
1109 1218 1 sidedata entries
1110 1219 entry-0014 size 4
1111 1220 '\x00\x00\x00\x00'
1112 1221 ##### revision 16 #####
1113 1222 1 sidedata entries
1114 1223 entry-0014 size 14
1115 1224 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d'
1116 1225 added : d, ;
1117 1226 ##### revision 17 #####
1118 1227 1 sidedata entries
1119 1228 entry-0014 size 4
1120 1229 '\x00\x00\x00\x00'
1121 1230 ##### revision 18 #####
1122 1231 1 sidedata entries
1123 1232 entry-0014 size 4
1124 1233 '\x00\x00\x00\x00'
1125 1234 ##### revision 19 #####
1126 1235 1 sidedata entries
1127 1236 entry-0014 size 14
1128 1237 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
1129 1238 merged : f, ;
1130 1239 ##### revision 20 #####
1131 1240 1 sidedata entries
1132 1241 entry-0014 size 14
1133 1242 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f'
1134 1243 merged : f, ;
1135 1244 ##### revision 21 #####
1136 1245 1 sidedata entries
1137 1246 entry-0014 size 24
1138 1247 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi'
1139 1248 removed : h, ;
1140 1249 added p1: i, h;
1141 1250 ##### revision 22 #####
1142 1251 1 sidedata entries
1143 1252 entry-0014 size 24
1144 1253 '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di'
1145 1254 touched p1: d, i;
1146 1255 removed : i, ;
1147 1256 ##### revision 23 #####
1148 1257 1 sidedata entries
1149 1258 entry-0014 size 4
1150 1259 '\x00\x00\x00\x00'
1151 1260 ##### revision 24 #####
1152 1261 1 sidedata entries
1153 1262 entry-0014 size 4
1154 1263 '\x00\x00\x00\x00'
1155 1264 ##### revision 25 #####
1156 1265 1 sidedata entries
1157 1266 entry-0014 size 14
1158 1267 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d'
1159 1268 touched : d, ;
1160 1269 ##### revision 26 #####
1161 1270 1 sidedata entries
1162 1271 entry-0014 size 14
1163 1272 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
1164 1273 merged : d, ;
1165 1274 ##### revision 27 #####
1166 1275 1 sidedata entries
1167 1276 entry-0014 size 14
1168 1277 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
1169 1278 merged : d, ;
1170 1279 ##### revision 28 #####
1171 1280 1 sidedata entries
1172 1281 entry-0014 size 14
1173 1282 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
1174 1283 merged : d, ;
1175 1284 ##### revision 29 #####
1176 1285 1 sidedata entries
1177 1286 entry-0014 size 14
1178 1287 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d'
1179 1288 merged : d, ;
1180 1289 ##### revision 30 #####
1181 1290 1 sidedata entries
1182 1291 entry-0014 size 14
1183 1292 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
1184 1293 salvaged : d, ;
1185 1294 ##### revision 31 #####
1186 1295 1 sidedata entries
1187 1296 entry-0014 size 14
1188 1297 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
1189 1298 salvaged : d, ;
1190 1299 ##### revision 32 #####
1191 1300 1 sidedata entries
1192 1301 entry-0014 size 14
1193 1302 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
1194 1303 salvaged : d, ;
1195 1304 ##### revision 33 #####
1196 1305 1 sidedata entries
1197 1306 entry-0014 size 14
1198 1307 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d'
1199 1308 salvaged : d, ;
1200 1309
1201 1310 #endif
General Comments 0
You need to be logged in to leave comments. Login now