git-svn: only look at the root path for svn:mergeinfo

Subversion can put mergeinfo on any sub-directory to track cherry-picks.
Since cherry-picks are not represented explicitly in git, git-svn should
just ignore it.

Signed-off-by: Jakob Stoklund Olesen <stoklund@2pi.dk>
Signed-off-by: Eric Wong <normalperson@yhbt.net>
This commit is contained in:
Jakob Stoklund Olesen 2014-04-16 23:54:06 -07:00 committed by Eric Wong
parent abfef3bbf5
commit 9ee13a934e

View File

@ -1210,7 +1210,7 @@ sub do_fetch {
unless ($self->ra->gs_do_update($last_rev, $rev, $self, $ed)) { unless ($self->ra->gs_do_update($last_rev, $rev, $self, $ed)) {
die "SVN connection failed somewhere...\n"; die "SVN connection failed somewhere...\n";
} }
$self->make_log_entry($rev, \@parents, $ed, $last_rev); $self->make_log_entry($rev, \@parents, $ed, $last_rev, $self->path);
} }
sub mkemptydirs { sub mkemptydirs {
@ -1859,22 +1859,19 @@ sub make_log_entry {
my $untracked = $self->get_untracked($ed); my $untracked = $self->get_untracked($ed);
my @parents = @$parents; my @parents = @$parents;
my $ps = $ed->{path_strip} || ""; my $props = $ed->{dir_prop}{$self->path};
for my $path ( grep { m/$ps/ } %{$ed->{dir_prop}} ) {
my $props = $ed->{dir_prop}{$path};
if ( $props->{"svk:merge"} ) { if ( $props->{"svk:merge"} ) {
$self->find_extra_svk_parents $self->find_extra_svk_parents
($ed, $props->{"svk:merge"}, \@parents); ($ed, $props->{"svk:merge"}, \@parents);
} }
if ( $props->{"svn:mergeinfo"} ) { if ( $props->{"svn:mergeinfo"} ) {
my $mi_changes = $self->mergeinfo_changes my $mi_changes = $self->mergeinfo_changes
($parent_path || $path, $parent_rev, ($parent_path, $parent_rev,
$path, $rev, $self->path, $rev,
$props->{"svn:mergeinfo"}); $props->{"svn:mergeinfo"});
$self->find_extra_svn_parents $self->find_extra_svn_parents
($ed, $mi_changes, \@parents); ($ed, $mi_changes, \@parents);
} }
}
open my $un, '>>', "$self->{dir}/unhandled.log" or croak $!; open my $un, '>>', "$self->{dir}/unhandled.log" or croak $!;
print $un "r$rev\n" or croak $!; print $un "r$rev\n" or croak $!;