git-svn: understand grafts when doing dcommit
Use the rev-list --parents functionality to read the parents of the commit. cat-file only shows the raw object with the original parents and doesn't take into account grafts; so we'll rely on rev-list machinery for the smarts here. Signed-off-by: Eric Wong <normalperson@yhbt.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
5701115aa7
commit
7b02b85a66
11
git-svn.perl
11
git-svn.perl
@ -841,14 +841,9 @@ sub working_head_info {
|
||||
|
||||
sub read_commit_parents {
|
||||
my ($parents, $c) = @_;
|
||||
my ($fh, $ctx) = command_output_pipe(qw/cat-file commit/, $c);
|
||||
while (<$fh>) {
|
||||
chomp;
|
||||
last if '';
|
||||
/^parent ($sha1)/ or next;
|
||||
push @{$parents->{$c}}, $1;
|
||||
}
|
||||
close $fh; # break the pipe
|
||||
chomp(my $p = command_oneline(qw/rev-list --parents -1/, $c));
|
||||
$p =~ s/^($c)\s*// or die "rev-list --parents -1 $c failed!\n";
|
||||
@{$parents->{$c}} = split(/ /, $p);
|
||||
}
|
||||
|
||||
sub linearize_history {
|
||||
|
Loading…
Reference in New Issue
Block a user