view tests/svn/encoding.svndump @ 25997:d4e1e947444b stable

convert: fix git copy file content conversions There was a bug in the git convert code where if you copied a file and modified the copy source in the same commit, and if the copy dest was alphabetically earlier than the copy source, the converted version would use the copy dest contents for both the source and the target. The root of the bug is that the git diff-tree output is formatted like so: :<mode> <mode> <oldhash> <newhash> <state> <src> <dest> :100644 100644 c1ab79a15... 3dfc779ab... C069 oldname newname :100644 100644 c1ab79a15... 03e2188a6... M oldname The old code would always take the 'oldname' field as the name of the file being processed, then it would try to do an extra convert for the newname. This works for renames because it does a delete for the oldname and a create for the newname. For copies though, it ends up associating the copied content (3dfc779ab above) with the oldname. It only happened when the dest was alphabetically before because that meant the copy got processed before the modification. The fix is the treat copy lines as affecting only the newname, and not marking the oldname as processed.
author Durham Goode <durham@fb.com>
date Thu, 06 Aug 2015 17:21:46 -0700
parents 0332f8b44e54
children
line wrap: on
line source

SVN-fs-dump-format-version: 2

UUID: afeb9c47-92ff-4c0c-9f72-e1f6eb8ac9af

Revision-number: 0
Prop-content-length: 56
Content-length: 56

K 8
svn:date
V 27
2009-06-21T16:34:55.835945Z
PROPS-END

Revision-number: 1
Prop-content-length: 112
Content-length: 112

K 7
svn:log
V 10
init projA
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:55.909545Z
PROPS-END

Node-path: branches
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END


Node-path: tags
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: 106
Content-length: 106

K 7
svn:log
V 5
hello
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:56.150049Z
PROPS-END

Node-path: trunk/à
Node-kind: dir
Node-action: add
Prop-content-length: 10
Content-length: 10

PROPS-END


Node-path: trunk/à/é
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: e29311f6f1bf1af907f9ef9f44b8328b
Text-content-sha1: e983f374794de9c64e3d1c1de1d490c0756eeeff
Content-length: 12

PROPS-END
d


Node-path: trunk/é
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 9ffbf43126e33be52cd2bf7e01d627f9
Text-content-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff
Content-length: 12

PROPS-END
e


Revision-number: 3
Prop-content-length: 112
Content-length: 112

K 7
svn:log
V 10
copy files
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:34:59.089402Z
PROPS-END

Node-path: trunk/è
Node-kind: file
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/é
Text-copy-source-md5: 9ffbf43126e33be52cd2bf7e01d627f9
Text-copy-source-sha1: 094e3afb2fe8dfe82f63731cdcd3b999f4856cff


Node-path: trunk/ù
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/à


Node-path: trunk/à
Node-action: delete


Node-path: trunk/é
Node-action: delete


Revision-number: 4
Prop-content-length: 114
Content-length: 114

K 7
svn:log
V 12
remove files
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:00.165121Z
PROPS-END

Node-path: trunk/è
Node-action: delete


Node-path: trunk/ù
Node-action: delete


Revision-number: 5
Prop-content-length: 120
Content-length: 120

K 7
svn:log
V 18
branch to branché
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:03.079138Z
PROPS-END

Node-path: branches/branché
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 4
Node-copyfrom-path: trunk


Revision-number: 6
Prop-content-length: 121
Content-length: 121

K 7
svn:log
V 19
branch to branchée
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:06.060801Z
PROPS-END

Node-path: branches/branchée
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: branches/branché


Revision-number: 7
Prop-content-length: 110
Content-length: 110

K 7
svn:log
V 9
tag trunk
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:09.061530Z
PROPS-END

Node-path: tags/branché
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 6
Node-copyfrom-path: trunk


Revision-number: 8
Prop-content-length: 114
Content-length: 114

K 7
svn:log
V 12
tag branché
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2009-06-21T16:35:11.068562Z
PROPS-END

Node-path: tags/branchée
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 6
Node-copyfrom-path: branches/branchée