From edd2d08a9aef32f442f43fb960a80680389b1685 Mon Sep 17 00:00:00 2001 From: Arne Georg Gleditsch Date: Wed, 12 Aug 2009 22:48:21 +0200 Subject: Don't rely on file system to get object of Git tag. --- lib/LXRng/Repo/Git.pm | 8 ++++---- lxr-genxref | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/lib/LXRng/Repo/Git.pm b/lib/LXRng/Repo/Git.pm index 7407ca0..946c73f 100644 --- a/lib/LXRng/Repo/Git.pm +++ b/lib/LXRng/Repo/Git.pm @@ -112,10 +112,10 @@ sub node { $path =~ s,/+$,,; if ($path eq '') { - open(my $tag, '<', $$self{'root'}.'/refs/tags/'.$release) - or return undef; - my $ref = <$tag>; - close($tag); + my $git = $self->_git_cmd('rev-list', '--max-count=1', $release); + my $ref = <$git>; + return undef unless $git =~ /\S/; + close($git); chomp($ref); return LXRng::Repo::Git::Directory->new($self, '', $ref); } diff --git a/lxr-genxref b/lxr-genxref index 782ad9f..414b83b 100755 --- a/lxr-genxref +++ b/lxr-genxref @@ -343,7 +343,7 @@ sub inventory_release($) { my $iter = $rep->iterator($version); LXRng::Index::transaction { - my $root = $rep->node('/', $version) or die "bad root"; + my $root = $rep->node('/', $version) or die "Bad root for release $version"; my $node; while (defined($node = $iter->next)) { -- cgit v1.2.3