Code

git-svn: fix show-ignore when not connected to the repository root
authorEric Wong <normalperson@yhbt.net>
Sun, 4 Mar 2007 08:15:29 +0000 (00:15 -0800)
committerJunio C Hamano <junkio@cox.net>
Sun, 4 Mar 2007 08:34:01 +0000 (00:34 -0800)
It was traversing the entire repository before.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-svn.perl

index 41961b59f6d7848efbb4e7b91dcb629bbd7d4abb..326e89fe037561c1ad72d91c7783bf2a0f603826 100755 (executable)
@@ -447,7 +447,7 @@ sub cmd_show_ignore {
        my $url = (::working_head_info('HEAD'))[0];
        my $gs = Git::SVN->find_by_url($url) || Git::SVN->new;
        my $r = (defined $_revision ? $_revision : $gs->ra->get_latest_revnum);
-       $gs->traverse_ignore(\*STDOUT, '', $r);
+       $gs->traverse_ignore(\*STDOUT, $gs->{path}, $r);
 }
 
 sub cmd_multi_init {
@@ -1334,7 +1334,7 @@ sub traverse_ignore {
        my $ra = $self->ra;
        my ($dirent, undef, $props) = $ra->get_dir($path, $r);
        my $p = $path;
-       $p =~ s#^\Q$ra->{svn_path}\E/##;
+       $p =~ s#^\Q$self->{path}\E(/|$)##;
        print $fh length $p ? "\n# $p\n" : "\n# /\n";
        if (my $s = $props->{'svn:ignore'}) {
                $s =~ s/[\r\n]+/\n/g;