mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
git svn: strip leading path when making empty dirs
Since unhandled.log stores paths relative to the repository root, we need to strip out leading path components if the directories we're tracking are not the repository root. Reported-by: Björn Steinbrink Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
parent
4d0157d699
commit
9be30eed61
@ -2752,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";
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user