Signed-off-by: Alex Vandiver <alex@xxxxxxxxx> --- git-svn.perl | 22 ++++++++++++++-------- 1 files changed, 14 insertions(+), 8 deletions(-) diff --git a/git-svn.perl b/git-svn.perl index 53bf20c..5337326 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -2924,7 +2924,7 @@ sub check_author { } sub find_extra_svk_parents { - my ($self, $ed, $tickets, $parents) = @_; + my ($self, $ed, $tickets, $parents, $merges) = @_; # aha! svk:merge property changed... my @tickets = split "\n", $tickets; my @known_parents; @@ -2944,14 +2944,15 @@ sub find_extra_svk_parents { # wahey! we found it, but it might be # an old one (!) push @known_parents, [ $rev, $commit ]; + push @known_parents, [ $rev, $path, $commit ]; } } } # Ordering matters; highest-numbered commit merge tickets # first, as they may account for later merge ticket additions # or changes. - @known_parents = map {$_->[1]} sort {$b->[0] <=> $a->[0]} @known_parents; - for my $parent ( @known_parents ) { + for my $merge ( sort {$b->[0] <=> $a->[0]} @known_parents ) { + my ($rev, $path, $parent) = @{$merge}; my @cmd = ('rev-list', $parent, map { "^$_" } @$parents ); my ($msg_fh, $ctx) = command_output_pipe(@cmd); my $new; @@ -2963,6 +2964,7 @@ sub find_extra_svk_parents { print STDERR "Found merge parent (svk:merge ticket): $parent\n"; push @$parents, $parent; + push @$merges, "$path:$rev"; } } } @@ -3061,27 +3063,31 @@ sub make_log_entry { my ($self, $rev, $parents, $ed) = @_; my $untracked = $self->get_untracked($ed); - my @parents = @$parents; + my %log_entry = ( parents => $parents, + merged_branches => [], + revision => $rev, + log => ''); 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); + ($ed, + $props->{"svk:merge"}, + $log_entry{parents}, + $log_entry{merged_branches}); } if ( $props->{"svn:mergeinfo"} ) { $self->find_extra_svn_parents ($ed, $props->{"svn:mergeinfo"}, - \@parents); + $log_entry{parents}); } } open my $un, '>>', "$self->{dir}/unhandled.log" or croak $!; print $un "r$rev\n" or croak $!; print $un $_, "\n" foreach @$untracked; - my %log_entry = ( parents => \@parents, revision => $rev, - log => ''); my $headrev; my $logged = delete $self->{logged_rev_props}; -- 1.6.6.rc0.327.g032bc -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html