summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Kay Sievers <kay.sievers@suse.de>2005-09-04 01:37:25 +0200
committerLibravatar Kay Sievers <kay.sievers@suse.de>2005-09-04 01:37:25 +0200
commitf9127561461fe209171aaf81afd2bbe234756d7b (patch)
tree870f263f688df2dc73b05ccce14155d549e89a44
parentv243 (diff)
downloadtgif-f9127561461fe209171aaf81afd2bbe234756d7b.tar.xz
translate reference into hash while reading a commit
-rwxr-xr-xgitweb.cgi13
1 files changed, 11 insertions, 2 deletions
diff --git a/gitweb.cgi b/gitweb.cgi
index 94063aaa13..6a61c65557 100755
--- a/gitweb.cgi
+++ b/gitweb.cgi
@@ -478,7 +478,16 @@ sub git_read_commit {
if (!defined $co{'tree'}) {
return undef
};
- $co{'id'} = $commit_id;
+ if (!($commit_id =~ m/^[0-9a-fA-F]{40}$/)) {
+ # lookup hash by textual id
+ open my $fd, "-|", "$gitbin/git-rev-parse --verify $commit_id" or return;
+ my $hash_id = <$fd>;
+ close $fd or return;
+ chomp $hash_id;
+ $co{'id'} = $hash_id
+ } else {
+ $co{'id'} = $commit_id;
+ }
$co{'parents'} = \@parents;
$co{'parent'} = $parents[0];
$co{'comment'} = \@commit_lines;
@@ -1630,7 +1639,7 @@ sub git_commit {
"</tr>\n";
print "<tr><td>committer</td><td>" . escapeHTML($co{'committer'}) . "</td></tr>\n";
print "<tr><td></td><td> $cd{'rfc2822'}" . sprintf(" (%02d:%02d %s)", $cd{'hour_local'}, $cd{'minute_local'}, $cd{'tz_local'}) . "</td></tr>\n";
- print "<tr><td>commit</td><td style=\"font-family:monospace\">$hash</td></tr>\n";
+ print "<tr><td>commit</td><td style=\"font-family:monospace\">$co{'id'}</td></tr>\n";
print "<tr>" .
"<td>tree</td>" .
"<td style=\"font-family:monospace\">" .