Mercurial > hgsubversion
view 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 |
line wrap: on
line source
SVN-fs-dump-format-version: 2 UUID: fa1ccad6-11a6-48b0-ba92-9a083fa61127 Revision-number: 0 Prop-content-length: 56 Content-length: 56 K 8 svn:date V 27 2008-11-02T15:08:30.507812Z PROPS-END Revision-number: 1 Prop-content-length: 114 Content-length: 114 K 7 svn:log V 12 init project K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:30.609102Z PROPS-END Node-path: branches Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Revision-number: 2 Prop-content-length: 113 Content-length: 113 K 7 svn:log V 11 add a and b K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:31.258716Z PROPS-END Node-path: trunk/a Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2 Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3 Content-length: 12 PROPS-END a Node-path: trunk/b Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2 Text-content-md5: 3b5d5c3712955042212316173ccf37be Content-length: 12 PROPS-END b Node-path: trunk/changed Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 8 Text-content-md5: ec1bebaea2c042beb68f7679ddd106a4 Content-length: 18 PROPS-END changed Node-path: trunk/changeddir Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk/changeddir/f Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 9 Text-content-md5: 2dfdfd8492a2c558ec838d69f73f5f6b Content-length: 19 PROPS-END changed2 Node-path: trunk/da Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk/da/daf Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2 Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 Content-length: 12 PROPS-END c Node-path: trunk/da/db Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk/da/db/dbf Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2 Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b Content-length: 12 PROPS-END d Node-path: trunk/deleteddir Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk/deleteddir/f Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 11 Text-content-md5: 49b72b575e26ecddb296dd59b24c3e67 Content-length: 21 PROPS-END deleteddir Node-path: trunk/deletedfile Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 8 Text-content-md5: 4d742b2f247bec99b41a60acbebc149a Content-length: 18 PROPS-END deleted Node-path: trunk/unchanged Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 10 Text-content-md5: 85ae5b04dd0a666efad8633d142a4635 Content-length: 20 PROPS-END unchanged Node-path: trunk/unchangeddir Node-kind: dir Node-action: add Prop-content-length: 10 Content-length: 10 PROPS-END Node-path: trunk/unchangeddir/f Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 11 Text-content-md5: a11092875079a002afb9ecef07f510e7 Content-length: 21 PROPS-END unchanged2 Revision-number: 3 Prop-content-length: 123 Content-length: 123 K 7 svn:log V 21 delete files and dirs K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:32.203445Z PROPS-END Node-path: trunk/changed Node-kind: file Node-action: change Text-content-length: 16 Text-content-md5: 1725f40a29aad369a39b0f96c82d50f9 Content-length: 16 changed changed Node-path: trunk/changeddir/f Node-kind: file Node-action: change Text-content-length: 18 Text-content-md5: 984b8c4ab9193b7659b9f914897a949c Content-length: 18 changed2 changed2 Node-path: trunk/deleteddir Node-action: delete Node-path: trunk/deletedfile Node-action: delete Revision-number: 4 Prop-content-length: 116 Content-length: 116 K 7 svn:log V 14 create branch1 K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:34.175358Z PROPS-END Node-path: branches/branch1 Node-kind: dir Node-action: add Node-copyfrom-rev: 1 Node-copyfrom-path: trunk Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Node-path: branches/branch1/a Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/a Text-copy-source-md5: 60b725f10c9c85c70d97880dfe8191b3 Node-path: branches/branch1/b Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/b Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be Node-path: branches/branch1/changed Node-kind: file Node-action: add Node-copyfrom-rev: 3 Node-copyfrom-path: trunk/changed Text-copy-source-md5: 1725f40a29aad369a39b0f96c82d50f9 Node-path: branches/branch1/changeddir Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/changeddir Node-path: branches/branch1/changeddir/f Node-kind: file Node-action: delete Node-path: branches/branch1/changeddir/f Node-kind: file Node-action: add Node-copyfrom-rev: 3 Node-copyfrom-path: trunk/changeddir/f Text-copy-source-md5: 984b8c4ab9193b7659b9f914897a949c Node-path: branches/branch1/da Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/da Node-path: branches/branch1/unchanged Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/unchanged Text-copy-source-md5: 85ae5b04dd0a666efad8633d142a4635 Node-path: branches/branch1/unchangeddir Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/unchangeddir Revision-number: 5 Prop-content-length: 106 Content-length: 106 K 7 svn:log V 5 add c K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:35.168793Z PROPS-END Node-path: branches/branch1/c Node-kind: file Node-action: add Prop-content-length: 10 Text-content-length: 2 Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 Content-length: 12 PROPS-END c Revision-number: 6 Prop-content-length: 129 Content-length: 129 K 7 svn:log V 27 rename and copy a, b and da K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:42.197170Z PROPS-END Node-path: branches/branch1/c1 Node-kind: file Node-action: add Node-copyfrom-rev: 5 Node-copyfrom-path: branches/branch1/c Text-copy-source-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 Prop-content-length: 34 Text-content-length: 4 Text-content-md5: 63fad9092ad37713ebe26b3193f89c41 Content-length: 38 K 13 svn:mergeinfo V 0 PROPS-END c c Node-path: trunk/a1 Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/a Text-copy-source-md5: 60b725f10c9c85c70d97880dfe8191b3 Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Node-path: trunk/a2 Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/a Text-copy-source-md5: 60b725f10c9c85c70d97880dfe8191b3 Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Node-path: trunk/b Node-kind: file Node-action: change Text-content-length: 4 Text-content-md5: 06ac26ed8b614fc0b141e4542aa067c2 Content-length: 4 b b Node-path: trunk/b1 Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/b Text-copy-source-md5: 3b5d5c3712955042212316173ccf37be Prop-content-length: 34 Text-content-length: 4 Text-content-md5: 33cb6785d50937d8d307ebb66d6259a7 Content-length: 38 K 13 svn:mergeinfo V 0 PROPS-END b c Node-path: trunk/da1 Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/da Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Node-path: trunk/da2 Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/da Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Node-path: trunk/a Node-action: delete Node-path: trunk/da Node-action: delete Revision-number: 7 Prop-content-length: 121 Content-length: 121 K 7 svn:log V 19 copy b from branch1 K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:44.147557Z PROPS-END Node-path: trunk/c Node-kind: file Node-action: add Node-copyfrom-rev: 5 Node-copyfrom-path: branches/branch1/c Text-copy-source-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1 Prop-content-length: 34 Content-length: 34 K 13 svn:mergeinfo V 0 PROPS-END Revision-number: 8 Prop-content-length: 126 Content-length: 126 K 7 svn:log V 24 copy stuff from the past K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:47.152642Z PROPS-END Node-path: trunk/deleteddir Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/deleteddir Node-path: trunk/deletedfile Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/deletedfile Text-copy-source-md5: 4d742b2f247bec99b41a60acbebc149a Revision-number: 9 Prop-content-length: 140 Content-length: 140 K 7 svn:log V 38 copy stuff from the past before change K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:50.152360Z PROPS-END Node-path: trunk/changed2 Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/changed Text-copy-source-md5: ec1bebaea2c042beb68f7679ddd106a4 Node-path: trunk/changeddir2 Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/changeddir Revision-number: 10 Prop-content-length: 136 Content-length: 136 K 7 svn:log V 34 copy unchanged stuff from the past K 10 svn:author V 7 pmezard K 8 svn:date V 27 2008-11-02T15:08:53.156849Z PROPS-END Node-path: trunk/unchanged2 Node-kind: file Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/unchanged Text-copy-source-md5: 85ae5b04dd0a666efad8633d142a4635 Node-path: trunk/unchangeddir2 Node-kind: dir Node-action: add Node-copyfrom-rev: 2 Node-copyfrom-path: trunk/unchangeddir