comparison tests/fixtures/renames.svndump @ 69:63ece4ea25c9

hg_delta_editor: register copies only if files are unchanged between source and dest Handle copies of items from revision X into revision Y where X is not the parent of Y. This cannot happen in Mercurial because copies always happen between parents and children. A file copy is recorded if: 1- Source and destination revs are in the same branch. 2- The file is unchanged (content, type, removal) through all revisions between destination and source, not including source and destination. Directory copies are registered only if the previous rules apply on all copied items. [1] is there because file copies across branches are meaningless in Mercurial world. We could have tried to remap the source rev to a similar one in the correct branch, but anyway the intent is wrong. [2] is more questionable but I think it's better this way for we live in a non-perfect svn world. In theory, 99% of copies out there should come from the direct parent. But the direct parent is a fuzzy notion when you can have a working directory composed of different directory at different revisions. So we assume that stuff copied from past revisions exactly matching the content of the direct parent revision is really copied from the parent revision. The alternative would be to discard the copy, which would always happen unless people kept updating the working directory after every commit (see tests).
author Patrick Mezard <pmezard@gmail.com>
date Wed, 05 Nov 2008 13:37:08 +0100
parents e0c86ebe05e3
children bf1e8b8ed452
comparison
equal deleted inserted replaced
68:e0c86ebe05e3 69:63ece4ea25c9
1 SVN-fs-dump-format-version: 2 1 SVN-fs-dump-format-version: 2
2 2
3 UUID: 6ebabe06-44c1-4542-ad93-bd59fbe3743b 3 UUID: fa1ccad6-11a6-48b0-ba92-9a083fa61127
4 4
5 Revision-number: 0 5 Revision-number: 0
6 Prop-content-length: 56 6 Prop-content-length: 56
7 Content-length: 56 7 Content-length: 56
8 8
9 K 8 9 K 8
10 svn:date 10 svn:date
11 V 27 11 V 27
12 2008-11-02T10:33:21.311566Z 12 2008-11-02T15:08:30.507812Z
13 PROPS-END 13 PROPS-END
14 14
15 Revision-number: 1 15 Revision-number: 1
16 Prop-content-length: 114 16 Prop-content-length: 114
17 Content-length: 114 17 Content-length: 114
25 V 7 25 V 7
26 pmezard 26 pmezard
27 K 8 27 K 8
28 svn:date 28 svn:date
29 V 27 29 V 27
30 2008-11-02T10:33:21.376729Z 30 2008-11-02T15:08:30.609102Z
31 PROPS-END 31 PROPS-END
32 32
33 Node-path: branches 33 Node-path: branches
34 Node-kind: dir 34 Node-kind: dir
35 Node-action: add 35 Node-action: add
61 V 7 61 V 7
62 pmezard 62 pmezard
63 K 8 63 K 8
64 svn:date 64 svn:date
65 V 27 65 V 27
66 2008-11-02T10:33:22.217406Z 66 2008-11-02T15:08:31.258716Z
67 PROPS-END 67 PROPS-END
68 68
69 Node-path: trunk/a 69 Node-path: trunk/a
70 Node-kind: file 70 Node-kind: file
71 Node-action: add 71 Node-action: add
88 88
89 PROPS-END 89 PROPS-END
90 b 90 b
91 91
92 92
93 Node-path: trunk/changed
94 Node-kind: file
95 Node-action: add
96 Prop-content-length: 10
97 Text-content-length: 8
98 Text-content-md5: ec1bebaea2c042beb68f7679ddd106a4
99 Content-length: 18
100
101 PROPS-END
102 changed
103
104
105 Node-path: trunk/changeddir
106 Node-kind: dir
107 Node-action: add
108 Prop-content-length: 10
109 Content-length: 10
110
111 PROPS-END
112
113
114 Node-path: trunk/changeddir/f
115 Node-kind: file
116 Node-action: add
117 Prop-content-length: 10
118 Text-content-length: 9
119 Text-content-md5: 2dfdfd8492a2c558ec838d69f73f5f6b
120 Content-length: 19
121
122 PROPS-END
123 changed2
124
125
93 Node-path: trunk/da 126 Node-path: trunk/da
94 Node-kind: dir 127 Node-kind: dir
95 Node-action: add 128 Node-action: add
96 Prop-content-length: 10 129 Prop-content-length: 10
97 Content-length: 10 130 Content-length: 10
163 196
164 PROPS-END 197 PROPS-END
165 deleted 198 deleted
166 199
167 200
201 Node-path: trunk/unchanged
202 Node-kind: file
203 Node-action: add
204 Prop-content-length: 10
205 Text-content-length: 10
206 Text-content-md5: 85ae5b04dd0a666efad8633d142a4635
207 Content-length: 20
208
209 PROPS-END
210 unchanged
211
212
213 Node-path: trunk/unchangeddir
214 Node-kind: dir
215 Node-action: add
216 Prop-content-length: 10
217 Content-length: 10
218
219 PROPS-END
220
221
222 Node-path: trunk/unchangeddir/f
223 Node-kind: file
224 Node-action: add
225 Prop-content-length: 10
226 Text-content-length: 11
227 Text-content-md5: a11092875079a002afb9ecef07f510e7
228 Content-length: 21
229
230 PROPS-END
231 unchanged2
232
233
168 Revision-number: 3 234 Revision-number: 3
169 Prop-content-length: 123 235 Prop-content-length: 123
170 Content-length: 123 236 Content-length: 123
171 237
172 K 7 238 K 7
178 V 7 244 V 7
179 pmezard 245 pmezard
180 K 8 246 K 8
181 svn:date 247 svn:date
182 V 27 248 V 27
183 2008-11-02T10:33:23.197795Z 249 2008-11-02T15:08:32.203445Z
184 PROPS-END 250 PROPS-END
251
252 Node-path: trunk/changed
253 Node-kind: file
254 Node-action: change
255 Text-content-length: 16
256 Text-content-md5: 1725f40a29aad369a39b0f96c82d50f9
257 Content-length: 16
258
259 changed
260 changed
261
262
263 Node-path: trunk/changeddir/f
264 Node-kind: file
265 Node-action: change
266 Text-content-length: 18
267 Text-content-md5: 984b8c4ab9193b7659b9f914897a949c
268 Content-length: 18
269
270 changed2
271 changed2
272
185 273
186 Node-path: trunk/deleteddir 274 Node-path: trunk/deleteddir
187 Node-action: delete 275 Node-action: delete
188 276
189 277
204 V 7 292 V 7
205 pmezard 293 pmezard
206 K 8 294 K 8
207 svn:date 295 svn:date
208 V 27 296 V 27
209 2008-11-02T10:33:25.160163Z 297 2008-11-02T15:08:34.175358Z
210 PROPS-END 298 PROPS-END
211 299
212 Node-path: branches/branch1 300 Node-path: branches/branch1
213 Node-kind: dir 301 Node-kind: dir
214 Node-action: add 302 Node-action: add
238 Node-copyfrom-rev: 2 326 Node-copyfrom-rev: 2
239 Node-copyfrom-path: trunk/b 327 Node-copyfrom-path: trunk/b
240 Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be 328 Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be
241 329
242 330
331 Node-path: branches/branch1/changed
332 Node-kind: file
333 Node-action: add
334 Node-copyfrom-rev: 3
335 Node-copyfrom-path: trunk/changed
336 Text-copy-source-md5: 1725f40a29aad369a39b0f96c82d50f9
337
338
339 Node-path: branches/branch1/changeddir
340 Node-kind: dir
341 Node-action: add
342 Node-copyfrom-rev: 2
343 Node-copyfrom-path: trunk/changeddir
344
345
346 Node-path: branches/branch1/changeddir/f
347 Node-kind: file
348 Node-action: delete
349
350 Node-path: branches/branch1/changeddir/f
351 Node-kind: file
352 Node-action: add
353 Node-copyfrom-rev: 3
354 Node-copyfrom-path: trunk/changeddir/f
355 Text-copy-source-md5: 984b8c4ab9193b7659b9f914897a949c
356
357
358
359
243 Node-path: branches/branch1/da 360 Node-path: branches/branch1/da
244 Node-kind: dir 361 Node-kind: dir
245 Node-action: add 362 Node-action: add
246 Node-copyfrom-rev: 2 363 Node-copyfrom-rev: 2
247 Node-copyfrom-path: trunk/da 364 Node-copyfrom-path: trunk/da
365
366
367 Node-path: branches/branch1/unchanged
368 Node-kind: file
369 Node-action: add
370 Node-copyfrom-rev: 2
371 Node-copyfrom-path: trunk/unchanged
372 Text-copy-source-md5: 85ae5b04dd0a666efad8633d142a4635
373
374
375 Node-path: branches/branch1/unchangeddir
376 Node-kind: dir
377 Node-action: add
378 Node-copyfrom-rev: 2
379 Node-copyfrom-path: trunk/unchangeddir
248 380
249 381
250 Revision-number: 5 382 Revision-number: 5
251 Prop-content-length: 106 383 Prop-content-length: 106
252 Content-length: 106 384 Content-length: 106
260 V 7 392 V 7
261 pmezard 393 pmezard
262 K 8 394 K 8
263 svn:date 395 svn:date
264 V 27 396 V 27
265 2008-11-02T10:33:26.173058Z 397 2008-11-02T15:08:35.168793Z
266 PROPS-END 398 PROPS-END
267 399
268 Node-path: branches/branch1/c 400 Node-path: branches/branch1/c
269 Node-kind: file 401 Node-kind: file
270 Node-action: add 402 Node-action: add
290 V 7 422 V 7
291 pmezard 423 pmezard
292 K 8 424 K 8
293 svn:date 425 svn:date
294 V 27 426 V 27
295 2008-11-02T10:33:33.195961Z 427 2008-11-02T15:08:42.197170Z
296 PROPS-END 428 PROPS-END
297 429
298 Node-path: branches/branch1/c1 430 Node-path: branches/branch1/c1
299 Node-kind: file 431 Node-kind: file
300 Node-action: add 432 Node-action: add
429 V 7 561 V 7
430 pmezard 562 pmezard
431 K 8 563 K 8
432 svn:date 564 svn:date
433 V 27 565 V 27
434 2008-11-02T10:33:35.147012Z 566 2008-11-02T15:08:44.147557Z
435 PROPS-END 567 PROPS-END
436 568
437 Node-path: trunk/c 569 Node-path: trunk/c
438 Node-kind: file 570 Node-kind: file
439 Node-action: add 571 Node-action: add
463 V 7 595 V 7
464 pmezard 596 pmezard
465 K 8 597 K 8
466 svn:date 598 svn:date
467 V 27 599 V 27
468 2008-11-02T10:33:38.154817Z 600 2008-11-02T15:08:47.152642Z
469 PROPS-END 601 PROPS-END
470 602
471 Node-path: trunk/deleteddir 603 Node-path: trunk/deleteddir
472 Node-kind: dir 604 Node-kind: dir
473 Node-action: add 605 Node-action: add
481 Node-copyfrom-rev: 2 613 Node-copyfrom-rev: 2
482 Node-copyfrom-path: trunk/deletedfile 614 Node-copyfrom-path: trunk/deletedfile
483 Text-copy-source-md5: 4d742b2f247bec99b41a60acbebc149a 615 Text-copy-source-md5: 4d742b2f247bec99b41a60acbebc149a
484 616
485 617
618 Revision-number: 9
619 Prop-content-length: 140
620 Content-length: 140
621
622 K 7
623 svn:log
624 V 38
625 copy stuff from the past before change
626 K 10
627 svn:author
628 V 7
629 pmezard
630 K 8
631 svn:date
632 V 27
633 2008-11-02T15:08:50.152360Z
634 PROPS-END
635
636 Node-path: trunk/changed2
637 Node-kind: file
638 Node-action: add
639 Node-copyfrom-rev: 2
640 Node-copyfrom-path: trunk/changed
641 Text-copy-source-md5: ec1bebaea2c042beb68f7679ddd106a4
642
643
644 Node-path: trunk/changeddir2
645 Node-kind: dir
646 Node-action: add
647 Node-copyfrom-rev: 2
648 Node-copyfrom-path: trunk/changeddir
649
650
651 Revision-number: 10
652 Prop-content-length: 136
653 Content-length: 136
654
655 K 7
656 svn:log
657 V 34
658 copy unchanged stuff from the past
659 K 10
660 svn:author
661 V 7
662 pmezard
663 K 8
664 svn:date
665 V 27
666 2008-11-02T15:08:53.156849Z
667 PROPS-END
668
669 Node-path: trunk/unchanged2
670 Node-kind: file
671 Node-action: add
672 Node-copyfrom-rev: 2
673 Node-copyfrom-path: trunk/unchanged
674 Text-copy-source-md5: 85ae5b04dd0a666efad8633d142a4635
675
676
677 Node-path: trunk/unchangeddir2
678 Node-kind: dir
679 Node-action: add
680 Node-copyfrom-rev: 2
681 Node-copyfrom-path: trunk/unchangeddir
682
683