X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FGitalist%2FGit%2FObject%2FCommit.pm;h=1fd472c3274e4eda86096cfc661ef6b5eb429bd2;hb=09717a40ef5a5d43158701e91ead9ac7934880db;hp=5d3cdd3d3c0e8438493c012ff678a2d68b1db268;hpb=9aed017f6d77a65b0532d4204f72e03ee06243df;p=catagits%2FGitalist.git diff --git a/lib/Gitalist/Git/Object/Commit.pm b/lib/Gitalist/Git/Object/Commit.pm index 5d3cdd3..1fd472c 100644 --- a/lib/Gitalist/Git/Object/Commit.pm +++ b/lib/Gitalist/Git/Object/Commit.pm @@ -23,6 +23,10 @@ class Gitalist::Git::Object::Commit ], ); + method _build_tree { + return [$self->repository->get_object($self->tree_sha1)]; + } + method sha_by_path ($path) { $path =~ s{/+$}(); # FIXME should this really just take the first result? @@ -33,7 +37,7 @@ class Gitalist::Git::Object::Commit #'100644 blob 0fa3f3a66fb6a137f6ec2c19351ed4d807070ffa panic.c' $line =~ m/^([0-9]+) (.+) ($SHA1RE)\t/; my $sha1 = $3; - return $sha1; + return $self->repository->get_object($sha1); } method get_patch ( Maybe[NonEmptySimpleStr] $parent_hash?, @@ -176,9 +180,9 @@ class Gitalist::Git::Object::Commit my $commit = $commitdata{$sha1}; my $line; - until(($line = shift @blameout) =~ s/^\t//) { - $commit->{$1} = $2 - if $line =~ /^(\S+) (.*)/; + + until(@blameout == 0 || ($line = shift @blameout) =~ s/^\t//) { + $commit->{$1} = $2 if $line =~ /^(\S+) (.*)/; } unless(exists $commit->{author_dt}) {