gitweb: Default to $hash_base or HEAD for $hash in "commit" and "commitdiff"
authorJakub Narebski <jnareb@gmail.com>
Sat, 18 Nov 2006 22:35:41 +0000 (23:35 +0100)
committerJunio C Hamano <junkio@cox.net>
Tue, 21 Nov 2006 22:35:40 +0000 (14:35 -0800)
Set $hash parameter to $hash_base || "HEAD" if it is not set (if it is
not true to be more exact). This allows [hand-edited] URLs with 'action'
"commit" or "commitdiff" but without 'hash' parameter.

If there is 'h' (hash) parameter provided, then gitweb tries
to use this. HEAD is used _only_ if nether hash, nor hash_base
are provided, i.e. for URL like below
  URL?p=project.git;a=commit
i.e. without neither 'h' nor 'hb'.

Signed-off-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <junkio@cox.net>
gitweb/gitweb.perl

index bf58c3bac8ff807bb2640815668a49a3e4c723fc..19b3d36d159aa030bb827bd904274ac4922e1b33 100755 (executable)
@@ -3429,6 +3429,7 @@ sub git_log {
 }
 
 sub git_commit {
+       $hash ||= $hash_base || "HEAD";
        my %co = parse_commit($hash);
        if (!%co) {
                die_error(undef, "Unknown commit object");
@@ -3706,6 +3707,7 @@ sub git_blobdiff_plain {
 
 sub git_commitdiff {
        my $format = shift || 'html';
+       $hash ||= $hash_base || "HEAD";
        my %co = parse_commit($hash);
        if (!%co) {
                die_error(undef, "Unknown commit object");