git-svn: fix following renamed paths when tracking a single path
When using git-svn to follow only a single (empty) path per
svn-remote (i.e. not using --stdlayout), following the history
of a renamed path was broken in
c586879cdf
.
This reverts the regression for the single (emtpy) path per
svn-remote case.
To avoid breaking the tests in a committed revision, this is an
addendum to a patch originally submitted by
Santhosh Kumar Mani <santhoshmani@gmail.com>:
> git-svn: add test for renamed directory fetch
>
> This test tries to fetch a directory which had renames in the
> history from a SVN repository.
[ew: unneccesary dependency on the starting an HTTP server
removed from Santhosh's original test.]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a1c0dca43a
commit
f61cc48d28
@ -2239,12 +2239,13 @@ sub find_parent_branch {
|
||||
# just grow a tail if we're not unique enough :x
|
||||
$ref_id .= '-' while find_ref($ref_id);
|
||||
print STDERR "Initializing parent: $ref_id\n";
|
||||
my ($u, $p) = ($new_url, '');
|
||||
my ($u, $p, $repo_id) = ($new_url, '', $ref_id);
|
||||
if ($u =~ s#^\Q$url\E(/|$)##) {
|
||||
$p = $u;
|
||||
$u = $url;
|
||||
$repo_id = $self->{repo_id};
|
||||
}
|
||||
$gs = Git::SVN->init($u, $p, $self->{repo_id}, $ref_id, 1);
|
||||
$gs = Git::SVN->init($u, $p, $repo_id, $ref_id, 1);
|
||||
}
|
||||
my ($r0, $parent) = $gs->find_rev_before($r, 1);
|
||||
if (!defined $r0 || !defined $parent) {
|
||||
|
20
t/t9121-git-svn-fetch-renamed-dir.sh
Executable file
20
t/t9121-git-svn-fetch-renamed-dir.sh
Executable file
@ -0,0 +1,20 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# Copyright (c) 2008 Santhosh Kumar Mani
|
||||
|
||||
|
||||
test_description='git-svn can fetch renamed directories'
|
||||
|
||||
. ./lib-git-svn.sh
|
||||
|
||||
test_expect_success 'load repository with renamed directory' "
|
||||
svnadmin load -q $rawsvnrepo < ../t9121/renamed-dir.dump
|
||||
"
|
||||
|
||||
test_expect_success 'init and fetch repository' "
|
||||
git svn init $svnrepo/newname &&
|
||||
git svn fetch
|
||||
"
|
||||
|
||||
test_done
|
||||
|
90
t/t9121/renamed-dir.dump
Normal file
90
t/t9121/renamed-dir.dump
Normal file
@ -0,0 +1,90 @@
|
||||
SVN-fs-dump-format-version: 2
|
||||
|
||||
UUID: 06b9b3ad-f546-4fbe-8328-fcb4e6ef5c3f
|
||||
|
||||
Revision-number: 0
|
||||
Prop-content-length: 56
|
||||
Content-length: 56
|
||||
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2008-04-02T09:11:59.778557Z
|
||||
PROPS-END
|
||||
|
||||
Revision-number: 1
|
||||
Prop-content-length: 117
|
||||
Content-length: 117
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 14
|
||||
initial import
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
santhosh
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2008-04-02T09:13:03.170863Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: name
|
||||
Node-kind: dir
|
||||
Node-action: add
|
||||
Prop-content-length: 10
|
||||
Content-length: 10
|
||||
|
||||
PROPS-END
|
||||
|
||||
|
||||
Node-path: name/a.txt
|
||||
Node-kind: file
|
||||
Node-action: add
|
||||
Prop-content-length: 71
|
||||
Text-content-length: 6
|
||||
Text-content-md5: b1946ac92492d2347c6235b4d2611184
|
||||
Content-length: 77
|
||||
|
||||
K 13
|
||||
svn:mime-type
|
||||
V 10
|
||||
text/plain
|
||||
K 13
|
||||
svn:eol-style
|
||||
V 2
|
||||
LF
|
||||
PROPS-END
|
||||
hello
|
||||
|
||||
|
||||
Revision-number: 2
|
||||
Prop-content-length: 109
|
||||
Content-length: 109
|
||||
|
||||
K 7
|
||||
svn:log
|
||||
V 7
|
||||
renamed
|
||||
K 10
|
||||
svn:author
|
||||
V 8
|
||||
santhosh
|
||||
K 8
|
||||
svn:date
|
||||
V 27
|
||||
2008-04-02T09:14:22.952186Z
|
||||
PROPS-END
|
||||
|
||||
Node-path: newname
|
||||
Node-kind: dir
|
||||
Node-action: add
|
||||
Node-copyfrom-rev: 1
|
||||
Node-copyfrom-path: name
|
||||
|
||||
|
||||
Node-path: name
|
||||
Node-action: delete
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user