diff options
author | 2005-09-04 01:37:25 +0200 | |
---|---|---|
committer | 2005-09-04 01:37:25 +0200 | |
commit | f9127561461fe209171aaf81afd2bbe234756d7b (patch) | |
tree | 870f263f688df2dc73b05ccce14155d549e89a44 | |
parent | v243 (diff) | |
download | tgif-f9127561461fe209171aaf81afd2bbe234756d7b.tar.xz |
translate reference into hash while reading a commit
-rwxr-xr-x | gitweb.cgi | 13 |
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\">" . |