diff options
author | Robert Fitzsimons <robfitz@273k.net> | 2006-12-27 14:22:21 +0000 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-12-27 14:21:50 -0800 |
commit | ccdfdea08db398fca1580a970c0d283affa5343f (patch) | |
tree | b416d8a5370db3a96b172cc98211a0f698e7989d /gitweb/gitweb.perl | |
parent | 2ef580550460f377af895b09f5870424c0cff8fa (diff) | |
download | git-ccdfdea08db398fca1580a970c0d283affa5343f.tar.gz git-ccdfdea08db398fca1580a970c0d283affa5343f.tar.xz |
gitweb: Re-enable rev-list --parents for parse_commit.
Re-enable rev-list --parents for parse_commit which was removed in
(208b2dff95bb48682c351099023a1cbb0e1edf26). rev-list --parents is not
just used to return the parent headers in the commit object, it
includes any grafts which are vaild for the commit.
Signed-off-by: Robert Fitzsimons <robfitz@273k.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'gitweb/gitweb.perl')
-rwxr-xr-x | gitweb/gitweb.perl | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index 65fcdb0f2..da12be747 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1271,7 +1271,7 @@ sub parse_tag { } sub parse_commit_text { - my ($commit_text) = @_; + my ($commit_text, $withparents) = @_; my @commit_lines = split '\n', $commit_text; my %co; @@ -1281,13 +1281,12 @@ sub parse_commit_text { if (!($header =~ m/^[0-9a-fA-F]{40}/)) { return; } - $co{'id'} = $header; - my @parents; + ($co{'id'}, my @parents) = split ' ', $header; while (my $line = shift @commit_lines) { last if $line eq "\n"; if ($line =~ m/^tree ([0-9a-fA-F]{40})$/) { $co{'tree'} = $1; - } elsif ($line =~ m/^parent ([0-9a-fA-F]{40})$/) { + } elsif ((!defined $withparents) && ($line =~ m/^parent ([0-9a-fA-F]{40})$/)) { push @parents, $1; } elsif ($line =~ m/^author (.*) ([0-9]+) (.*)$/) { $co{'author'} = $1; @@ -1373,12 +1372,13 @@ sub parse_commit { local $/ = "\0"; open my $fd, "-|", git_cmd(), "rev-list", + "--parents", "--header", "--max-count=1", $commit_id, "--", or die_error(undef, "Open git-rev-list failed"); - %co = parse_commit_text(<$fd>); + %co = parse_commit_text(<$fd>, 1); close $fd; return %co; |