diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2014-04-16 23:54:06 -0700 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2014-10-24 22:55:29 +0000 |
commit | 9ee13a934e21380ff6082d98a86cab5e890418dc (patch) | |
tree | a62bf135cce4b22737ffad9f9539fee7390d9c68 /perl | |
parent | git-svn: only look at the new parts of svn:mergeinfo (diff) | |
download | tgif-9ee13a934e21380ff6082d98a86cab5e890418dc.tar.xz |
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>
Diffstat (limited to 'perl')
-rw-r--r-- | perl/Git/SVN.pm | 29 |
1 files changed, 13 insertions, 16 deletions
diff --git a/perl/Git/SVN.pm b/perl/Git/SVN.pm index abd51eadd2..b1a84d03cb 100644 --- a/perl/Git/SVN.pm +++ b/perl/Git/SVN.pm @@ -1210,7 +1210,7 @@ sub do_fetch { unless ($self->ra->gs_do_update($last_rev, $rev, $self, $ed)) { 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 { @@ -1859,21 +1859,18 @@ sub make_log_entry { my $untracked = $self->get_untracked($ed); my @parents = @$parents; - my $ps = $ed->{path_strip} || ""; - for my $path ( grep { m/$ps/ } %{$ed->{dir_prop}} ) { - my $props = $ed->{dir_prop}{$path}; - if ( $props->{"svk:merge"} ) { - $self->find_extra_svk_parents - ($ed, $props->{"svk:merge"}, \@parents); - } - if ( $props->{"svn:mergeinfo"} ) { - my $mi_changes = $self->mergeinfo_changes - ($parent_path || $path, $parent_rev, - $path, $rev, - $props->{"svn:mergeinfo"}); - $self->find_extra_svn_parents - ($ed, $mi_changes, \@parents); - } + my $props = $ed->{dir_prop}{$self->path}; + if ( $props->{"svk:merge"} ) { + $self->find_extra_svk_parents + ($ed, $props->{"svk:merge"}, \@parents); + } + if ( $props->{"svn:mergeinfo"} ) { + my $mi_changes = $self->mergeinfo_changes + ($parent_path, $parent_rev, + $self->path, $rev, + $props->{"svn:mergeinfo"}); + $self->find_extra_svn_parents + ($ed, $mi_changes, \@parents); } open my $un, '>>', "$self->{dir}/unhandled.log" or croak $!; |