Skip to content

Commit

Permalink
test case for regression caused by git-svn empty symlink fix
Browse files Browse the repository at this point in the history
Commit dbc6c74 "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>
  • Loading branch information
Anton Gyllenberg authored and Eric Wong committed Feb 11, 2009
1 parent 8841b37 commit 39111f6
Show file tree
Hide file tree
Showing 2 changed files with 208 additions and 0 deletions.
16 changes: 16 additions & 0 deletions t/t9135-git-svn-moved-branch-empty-file.sh
Original file line number Diff line number Diff line change
@@ -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 changes: 192 additions & 0 deletions t/t9135/svn.dump
Original file line number Diff line number Diff line change
@@ -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


0 comments on commit 39111f6

Please sign in to comment.