git-svn: add join_paths() to safely concatenate paths
Otherwise you might wind up with things like...
my $path1 = undef;
my $path2 = 'foo';
my $path = $path1 . '/' . $path2;
creating '/foo'. Or this...
my $path1 = 'foo/';
my $path2 = 'bar';
my $path = $path1 . '/' . $path2;
creating 'foo//bar'.
Could have used File::Spec, but I'm shying away from it due to SVN
1.7's pickiness about paths. Felt it would be better to have our own
we can control completely.
[ew: commit title]
Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
committed by
Eric Wong
parent
280ad88aa0
commit
ca475a61f8
@ -34,6 +34,7 @@ use Git::SVN::Utils qw(
|
||||
can_compress
|
||||
canonicalize_path
|
||||
canonicalize_url
|
||||
join_paths
|
||||
);
|
||||
|
||||
use Git qw(
|
||||
@ -1275,7 +1276,7 @@ sub get_svnprops {
|
||||
$path = $cmd_dir_prefix . $path;
|
||||
fatal("No such file or directory: $path") unless -e $path;
|
||||
my $is_dir = -d $path ? 1 : 0;
|
||||
$path = $gs->{path} . '/' . $path;
|
||||
$path = join_paths($gs->{path}, $path);
|
||||
|
||||
# canonicalize the path (otherwise libsvn will abort or fail to
|
||||
# find the file)
|
||||
|
||||
Reference in New Issue
Block a user