diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-11-22 19:01:15 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-11-22 19:01:15 -0800 |
commit | c1c30ab31dcf657dbbfeffca7963067cd05a010a (patch) | |
tree | efbb0bf4ca2b54cef39aa932c45e7e7aafcb8a40 | |
parent | 0a8a38433d7631ea3e2152f890cf92c9b0968948 (diff) | |
parent | 9be30eed61993a6f2d04a1609723e64e7632a64e (diff) | |
download | git-c1c30ab31dcf657dbbfeffca7963067cd05a010a.tar.gz git-c1c30ab31dcf657dbbfeffca7963067cd05a010a.tar.xz |
Merge git://git.bogomips.org/git-svn
* git://git.bogomips.org/git-svn:
git svn: strip leading path when making empty dirs
git svn: always reuse existing remotes on fetch
-rwxr-xr-x | git-svn.perl | 5 | ||||
-rwxr-xr-x | t/t9146-git-svn-empty-dirs.sh | 23 |
2 files changed, 28 insertions, 0 deletions
diff --git a/git-svn.perl b/git-svn.perl index 2746895ae..957d44e63 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -428,6 +428,7 @@ sub cmd_fetch { if (@_ > 1) { die "Usage: $0 fetch [--all] [--parent] [svn-remote]\n"; } + $Git::SVN::no_reuse_existing = undef; if ($_fetch_parent) { my ($url, $rev, $uuid, $gs) = working_head_info('HEAD'); unless ($gs) { @@ -956,6 +957,7 @@ sub cmd_multi_init { } sub cmd_multi_fetch { + $Git::SVN::no_reuse_existing = undef; my $remotes = Git::SVN::read_all_remotes(); foreach my $repo_id (sort keys %$remotes) { if ($remotes->{$repo_id}->{url}) { @@ -2750,8 +2752,11 @@ sub mkemptydirs { } } close $fh; + + my $strip = qr/\A\Q$self->{path}\E(?:\/|$)/; foreach my $d (sort keys %empty_dirs) { $d = uri_decode($d); + $d =~ s/$strip//; next if -d $d; if (-e _) { warn "$d exists but is not a directory\n"; diff --git a/t/t9146-git-svn-empty-dirs.sh b/t/t9146-git-svn-empty-dirs.sh index 5948544ec..70c52c1f9 100755 --- a/t/t9146-git-svn-empty-dirs.sh +++ b/t/t9146-git-svn-empty-dirs.sh @@ -82,4 +82,27 @@ test_expect_success 'git svn mkdirs -r works' ' ) ' +test_expect_success 'initialize trunk' ' + for i in trunk trunk/a trunk/"weird file name" + do + svn_cmd mkdir -m "mkdir $i" "$svnrepo"/"$i" + done +' + +test_expect_success 'clone trunk' 'git svn clone -s "$svnrepo" trunk' + +test_expect_success 'empty directories in trunk exist' ' + ( + cd trunk && + for i in a "weird file name" + do + if ! test -d "$i" + then + echo >&2 "$i does not exist" + exit 1 + fi + done + ) +' + test_done |