[PATCH v2 08/11] gitweb: display HEAD in heads list when detached
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
---
gitweb/gitweb.perl | 21 +++++++++++++++++++++
1 files changed, 21 insertions(+), 0 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 09728cb..a168f6f 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -2672,6 +2672,27 @@ sub git_get_heads_list {
my @refs = map { "refs/$_" } @class;
my @headslist;
+ if (grep { $_ eq 'heads' } @class) {
+ my @x = (git_cmd(), 'branch');
+ my @ret = split("\n", qx(@x));
+ if (grep { /^\* \(no branch\)$/ } @ret) { ;
+ my %ref_item;
+ @x = (git_cmd(), 'log', '-1', '--pretty=format:%H%n%ct%n%s');
+ my ($hash, $epoch, $title) = split("\n", qx(@x), 3);
+
+ $ref_item{'class'} = 'head';
+ $ref_item{'name'} = 'HEAD';
+ $ref_item{'id'} = $hash;
+ $ref_item{'title'} = $title || '(no commit message)';
+ if ($ref_item{'epoch'} = $epoch) {
+ $ref_item{'age'} = age_string(time - $ref_item{'epoch'});
+ } else {
+ $ref_item{'age'} = "unknown";
+ }
+ push @headslist, \%ref_item;
+ }
+ }
+
open my $fd, '-|', git_cmd(), 'for-each-ref',
($limit ? '--count='.($limit+1) : ()), '--sort=-committerdate',
'--format=%(objectname) %(refname) %(subject)%00%(committer)',
--
1.5.6.5