X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FRepository.pm;h=5259eb86a0eea866f279108254cdd7598e057047;hb=72fbbef7d694cd33a18ee384938a2d5944f34c8e;hp=513f607bf1103b705ffa68ed8eaf711c37f9d4f9;hpb=944f7f7b046e9d7b6c4a2f10677a0ff8bb7b0074;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/Repository.pm b/lib/Gitalist/Git/Repository.pm index 513f607..5259eb8 100644 --- a/lib/Gitalist/Git/Repository.pm +++ b/lib/Gitalist/Git/Repository.pm @@ -15,6 +15,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { use Gitalist::Git::Object::Tree; use Gitalist::Git::Object::Commit; use Gitalist::Git::Object::Tag; + use Gitalist::Git::Head; our $SHA1RE = qr/[0-9a-fA-F]{40}/; @@ -59,7 +60,7 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { ? 1 : 0 }, ); - has heads => ( isa => ArrayRef[HashRef], + has heads => ( isa => ArrayRef['Gitalist::Git::Head'], is => 'ro', lazy_build => 1); has tags => ( isa => ArrayRef[HashRef], @@ -237,19 +238,8 @@ class Gitalist::Git::Repository with Gitalist::Git::HasUtils { my @revlines = $self->run_cmd_list(qw/for-each-ref --sort=-committerdate /, '--format=%(objectname)%00%(refname)%00%(committer)', 'refs/heads'); my @ret; for my $line (@revlines) { - my ($rev, $head, $commiter) = split /\0/, $line, 3; - $head =~ s!^refs/heads/!!; - - push @ret, { sha1 => $rev, name => $head }; - - #FIXME: That isn't the time I'm looking for.. - if (my ($epoch, $tz) = $line =~ /\s(\d+)\s+([+-]\d+)$/) { - my $dt = DateTime->from_epoch(epoch => $epoch); - $dt->set_time_zone($tz); - $ret[-1]->{last_change} = $dt; - } + push @ret, Gitalist::Git::Head->new($line); } - return \@ret; }