MinGW: implement mmap
[gitweb.git] / git-svn.perl
index d967594ee70a53c1397da76f4b977191c4fd0561..8be6be00c6cc76bcf2fc2d9b1fe331ec5e81fd2e 100755 (executable)
@@ -2351,7 +2351,10 @@ sub match_paths {
        if (my $path = $paths->{"/$self->{path}"}) {
                return ($path->{action} eq 'D') ? 0 : 1;
        }
-       $self->{path_regex} ||= qr/^\/\Q$self->{path}\E\//;
+       my $repos_root = $self->ra->{repos_root};
+       my $extended_path = $self->{url} . '/' . $self->{path};
+       $extended_path =~ s#^\Q$repos_root\E(/|$)##;
+       $self->{path_regex} ||= qr/^\/\Q$extended_path\E\//;
        if (grep /$self->{path_regex}/, keys %$paths) {
                return 1;
        }
@@ -3297,7 +3300,7 @@ sub new {
 sub _mark_empty_symlinks {
        my ($git_svn, $switch_path) = @_;
        my $bool = Git::config_bool('svn.brokenSymlinkWorkaround');
-       return {} if (defined($bool) && ! $bool);
+       return {} if (!defined($bool)) || (defined($bool) && ! $bool);
 
        my %ret;
        my ($rev, $cmt) = $git_svn->last_rev_commit;
@@ -4738,7 +4741,7 @@ sub run_pager {
 
 sub format_svn_date {
        # some systmes don't handle or mishandle %z, so be creative.
-       my $t = shift;
+       my $t = shift || time;
        my $gm = timelocal(gmtime($t));
        my $sign = qw( + + - )[ $t <=> $gm ];
        my $gmoff = sprintf("%s%02d%02d", $sign, (gmtime(abs($t - $gm)))[2,1]);