view tests/svn/replace.svndump @ 31454:a5bad127128d

branchmap: handle nullrev in setcachedata 906be86990 recently changed to switch from: self._rbcrevs[rbcrevidx:rbcrevidx + _rbcrecsize] = rec to pack_into(_rbcrecfmt, self._rbcrevs, rbcrevidx, node, branchidx) This causes an exception if rbcrevidx is -1 (i.e. the nullrev). The old code handled this because python handles out of bound sets to arrays gracefully. The new code throws because the self._rbcrevs buffer isn't long enough to write 8 bytes to. Normally it would've been resized by the immediately preceding line, but because the 0 length buffer is greater than the idx (-1) times the size, no resize happens. Setting the branch for the nullrev doesn't make sense anyway, so let's skip it. This was caught by external tests in the Facebook extensions repo, but I've added a test here that catches the issue.
author Durham Goode <durham@fb.com>
date Wed, 15 Mar 2017 15:48:57 -0700
parents 5fb924ee44d5
children
line wrap: on
line source

SVN-fs-dump-format-version: 2

UUID: 97a955ef-0269-44f2-a58f-abd4ad400b2b

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

K 8
svn:date
V 27
2010-11-26T18:01:12.912988Z
PROPS-END

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

K 7
svn:log
V 7
initial
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2010-11-26T18:01:13.106933Z
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


Node-path: trunk/a
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b
Content-length: 12

PROPS-END
a


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

PROPS-END


Node-path: trunk/d/b
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 3b5d5c3712955042212316173ccf37be
Text-content-sha1: 89e6c98d92887913cadf06b2adb97f26cde4849b
Content-length: 12

PROPS-END
b


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

PROPS-END


Node-path: trunk/d2/a
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 60b725f10c9c85c70d97880dfe8191b3
Text-content-sha1: 3f786850e387550fdab836ed7e6dc881de23001b
Content-length: 12

PROPS-END
a


Node-path: trunk/dlink
Node-kind: file
Node-action: add
Prop-content-length: 33
Text-content-length: 6
Text-content-md5: cca56829f18345718a4980bb02b6d8c3
Text-content-sha1: 7c54cc5d472b78c94a04382df34b0f4f0f4f2d49
Content-length: 39

K 11
svn:special
V 1
*
PROPS-END
link d

Node-path: trunk/dlink2
Node-kind: file
Node-action: add
Prop-content-length: 33
Text-content-length: 6
Text-content-md5: cca56829f18345718a4980bb02b6d8c3
Text-content-sha1: 7c54cc5d472b78c94a04382df34b0f4f0f4f2d49
Content-length: 39

K 11
svn:special
V 1
*
PROPS-END
link d

Node-path: trunk/dlink3
Node-kind: file
Node-action: add
Prop-content-length: 33
Text-content-length: 6
Text-content-md5: cca56829f18345718a4980bb02b6d8c3
Text-content-sha1: 7c54cc5d472b78c94a04382df34b0f4f0f4f2d49
Content-length: 39

K 11
svn:special
V 1
*
PROPS-END
link d

Revision-number: 2
Prop-content-length: 117
Content-length: 117

K 7
svn:log
V 15
clobber symlink
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2010-11-26T18:01:14.073483Z
PROPS-END

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

PROPS-END
d


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

K 7
svn:log
V 8
clobber1
K 10
svn:author
V 4
evil
K 8
svn:date
V 27
2010-11-26T18:01:16.205184Z
PROPS-END

Node-path: trunk/a
Node-kind: dir
Node-action: delete

Node-path: trunk/a
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/d




Node-path: trunk/dlink
Node-kind: dir
Node-action: delete

Node-path: trunk/dlink
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 2
Node-copyfrom-path: trunk/d




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

K 7
svn:log
V 8
clobber2
K 10
svn:author
V 4
evil
K 8
svn:date
V 27
2010-11-26T18:01:16.395962Z
PROPS-END

Node-path: trunk/dlink3
Node-kind: file
Node-action: delete

Node-path: trunk/dlink3
Node-kind: file
Node-action: add
Node-copyfrom-rev: 3
Node-copyfrom-path: trunk/dlink2
Text-copy-source-md5: cca56829f18345718a4980bb02b6d8c3
Text-copy-source-sha1: 7c54cc5d472b78c94a04382df34b0f4f0f4f2d49




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

K 7
svn:log
V 5
adddb
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2010-11-26T18:01:16.445072Z
PROPS-END

Node-path: trunk/d2/b
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 3b5d5c3712955042212316173ccf37be
Text-content-sha1: 89e6c98d92887913cadf06b2adb97f26cde4849b
Content-length: 12

PROPS-END
b


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

K 7
svn:log
V 6
branch
K 10
svn:author
V 7
pmezard
K 8
svn:date
V 27
2010-11-26T18:01:19.075874Z
PROPS-END

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


Node-path: branches/branch/d2/c
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 2
Text-content-md5: 2cd6ee2c70b0bde53fbe6cac3c8b8bb1
Text-content-sha1: 2b66fd261ee5c6cfc8de7fa466bab600bcfe4f69
Content-length: 12

PROPS-END
c


Node-path: branches/branch/d2/b
Node-action: delete


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

K 7
svn:log
V 10
clobberdir
K 10
svn:author
V 4
evil
K 8
svn:date
V 27
2010-11-26T18:01:21.202158Z
PROPS-END

Node-path: trunk/d2
Node-kind: dir
Node-action: delete

Node-path: trunk/d2
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 6
Node-copyfrom-path: branches/branch/d2