[PATCH] gitweb: Use git-show-ref instead of git-peek-remote
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Nov 24, 2006, 22:01 UTC
- Message-ID
- <11644056823095-git-send-email-jnareb@gmail.com>
Use "git show-ref --dereference" instead of "git peek-remote ." in git_get_references. git-show-ref is faster than git-peek-remote; even faster is reading info/refs file (if it exists), but the information in info/refs can be stale.
git-show-ref is available since v1.4.4; the output format is slightly different than git-peek-remote output format.
Signed-off-by: Jakub Narebski <jnareb@gmail.com> --- gitweb/gitweb.perl | 9 +++++---- 1 files changed, 5 insertions(+), 4 deletions(-)
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl index f06cd3e..290751f 100755 --- a/gitweb/gitweb.perl +++ b/gitweb/gitweb.perl @@ -1154,14 +1154,15 @@ sub git_get_last_activity { sub git_get_references { my $type = shift || ""; my %refs; - # 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11 - # c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11^{} - open my $fd, "-|", $GIT, "peek-remote", "$projectroot/$project/" + # 5dc01c595e6c6ec9ccda4f6f69c131c0dd945f8c refs/tags/v2.6.11 + # c39ae07f393806ccf406ef966e9a15afc43cc36a refs/tags/v2.6.11^{} + open my $fd, "-|", git_cmd(), "show-ref", "--dereference", + ($type ? ("--", "refs/$type") : ()) # use -- <pattern> if $type or return; while (my $line = <$fd>) { chomp $line; - if ($line =~ m/^([0-9a-fA-F]{40})\trefs\/($type\/?[^\^]+)/) { + if ($line =~ m/^([0-9a-fA-F]{40}) refs\/($type\/?[^\^]+)/) { if (defined $refs{$1}) { push @{$refs{$1}}, $2; } else {
-- 1.4.4.1