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
This commit is contained in:
@ -428,6 +428,7 @@ sub cmd_fetch {
|
|||||||
if (@_ > 1) {
|
if (@_ > 1) {
|
||||||
die "Usage: $0 fetch [--all] [--parent] [svn-remote]\n";
|
die "Usage: $0 fetch [--all] [--parent] [svn-remote]\n";
|
||||||
}
|
}
|
||||||
|
$Git::SVN::no_reuse_existing = undef;
|
||||||
if ($_fetch_parent) {
|
if ($_fetch_parent) {
|
||||||
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
|
my ($url, $rev, $uuid, $gs) = working_head_info('HEAD');
|
||||||
unless ($gs) {
|
unless ($gs) {
|
||||||
@ -956,6 +957,7 @@ sub cmd_multi_init {
|
|||||||
}
|
}
|
||||||
|
|
||||||
sub cmd_multi_fetch {
|
sub cmd_multi_fetch {
|
||||||
|
$Git::SVN::no_reuse_existing = undef;
|
||||||
my $remotes = Git::SVN::read_all_remotes();
|
my $remotes = Git::SVN::read_all_remotes();
|
||||||
foreach my $repo_id (sort keys %$remotes) {
|
foreach my $repo_id (sort keys %$remotes) {
|
||||||
if ($remotes->{$repo_id}->{url}) {
|
if ($remotes->{$repo_id}->{url}) {
|
||||||
@ -2750,8 +2752,11 @@ sub mkemptydirs {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
close $fh;
|
close $fh;
|
||||||
|
|
||||||
|
my $strip = qr/\A\Q$self->{path}\E(?:\/|$)/;
|
||||||
foreach my $d (sort keys %empty_dirs) {
|
foreach my $d (sort keys %empty_dirs) {
|
||||||
$d = uri_decode($d);
|
$d = uri_decode($d);
|
||||||
|
$d =~ s/$strip//;
|
||||||
next if -d $d;
|
next if -d $d;
|
||||||
if (-e _) {
|
if (-e _) {
|
||||||
warn "$d exists but is not a directory\n";
|
warn "$d exists but is not a directory\n";
|
||||||
|
@ -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
|
test_done
|
||||||
|
Reference in New Issue
Block a user