Browse Source

test case for regression caused by git-svn empty symlink fix

Commit dbc6c74d08 "git-svn: handle empty
files marked as symlinks in SVN" caused a regression in an unusual case
where a branch has been created in SVN, later deleted and then created
again from another branch point and the original branch point had empty
files not in the new branch. In some cases git svn fetch will then fail
while trying to fetch the empty file from the wrong SVN revision.

This adds a test case that reproduces the issue.

[ew: added additional test to ensure file was created correctly
     made test file executable ]

Signed-off-by: Anton Gyllenberg <anton@iki.fi>
Acked-by: Eric Wong <normalperson@yhbt.net>
maint
Anton Gyllenberg 16 years ago committed by Eric Wong
parent
commit
39111f6b7a
  1. 16
      t/t9135-git-svn-moved-branch-empty-file.sh
  2. 192
      t/t9135/svn.dump

16
t/t9135-git-svn-moved-branch-empty-file.sh

@ -0,0 +1,16 @@ @@ -0,0 +1,16 @@
#!/bin/sh

test_description='test moved svn branch with missing empty files'

. ./lib-git-svn.sh
test_expect_success 'load svn dumpfile' '
svnadmin load "$rawsvnrepo" < "${TEST_DIRECTORY}/t9135/svn.dump"
'

test_expect_success 'clone using git svn' 'git svn clone -s "$svnrepo" x'

test_expect_success 'test that b1 exists and is empty' '
(cd x && test -f b1 && ! test -s b1)
'

test_done

192
t/t9135/svn.dump

@ -0,0 +1,192 @@ @@ -0,0 +1,192 @@
SVN-fs-dump-format-version: 2

UUID: 1f80e919-e9e3-4d80-a3ae-d9f21095e27b

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

K 8
svn:date
V 27
2009-02-10T19:23:16.424027Z
PROPS-END

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

K 7
svn:log
V 20
init standard layout
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:17.195072Z
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: 121
Content-length: 121

K 7
svn:log
V 18
branch-b off trunk
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:19.160095Z
PROPS-END

Node-path: branches/branch-b
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


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

K 7
svn:log
V 17
add empty file b1
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:20.194568Z
PROPS-END

Node-path: branches/branch-b/b1
Node-kind: file
Node-action: add
Prop-content-length: 10
Text-content-length: 0
Text-content-md5: d41d8cd98f00b204e9800998ecf8427e
Content-length: 10

PROPS-END


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

K 7
svn:log
V 8
branch-c
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:21.169100Z
PROPS-END

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


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

K 7
svn:log
V 23
oops, wrong branchpoint
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:21.253557Z
PROPS-END

Node-path: branches/branch-c
Node-action: delete


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

K 7
svn:log
V 24
branch-c off of branch-b
K 10
svn:author
V 8
john.doe
K 8
svn:date
V 27
2009-02-10T19:23:21.314659Z
PROPS-END

Node-path: branches/branch-c
Node-kind: dir
Node-action: add
Node-copyfrom-rev: 5
Node-copyfrom-path: branches/branch-b
Prop-content-length: 34
Content-length: 34

K 13
svn:mergeinfo
V 0

PROPS-END


Loading…
Cancel
Save