git-svn fails in prop_walk if $self->{path} is not empty
authorChristian Engwer <christi@uni-hd.de>
Tue, 27 May 2008 08:46:55 +0000 (08:46 +0000)
committerJunio C Hamano <gitster@pobox.com>
Sun, 1 Jun 2008 21:29:50 +0000 (14:29 -0700)
If url://repo/trunk is the current Git branch, prop_walk strips trunk
from the path name. That is useful as, for example "git svn show-ignore"
should not return results like

    trunk/foo

but

    foo

if svn:ignore for trunk includes foo.

The problem now is that prop_walk strips trunk from the path and then
calls itself recursively. But now trunk is missing in the path and
get_dir fails, because it is called for a non existing path.

The attached patch fixed the problem, by adding the previously stipped
$self->{path} in the recursive call. I tested it with my current
git-svn repository for the commands show-ignore and show-external.

Patch was submitted through
 http://bugs.debian.org/477393

Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-svn.perl

index dcb8b779c8c97df8197185d614a11568ed84cbe8..47b0c37d17101e17e34fab8ed04c3409fe106e87 100755 (executable)
@@ -1923,7 +1923,7 @@ sub prop_walk {
 
        foreach (sort keys %$dirent) {
                next if $dirent->{$_}->{kind} != $SVN::Node::dir;
-               $self->prop_walk($p . $_, $rev, $sub);
+               $self->prop_walk($self->{path} . $p . $_, $rev, $sub);
        }
 }