is => 'ro',
lazy => 1,
default => sub {
- -d $_[0]->path->parent->subdir->($_[0]->name)
+ -d $_[0]->path->parent->subdir($_[0]->name)
? 1 : 0
},
);
lazy_build => 1 );
method BUILD {
- $self->$_() for qw/last_change owner description/; # Ensure to build early.
+ $self->$_() for qw/last_change owner description /; # Ensure to build early.
}
## Public methods
return $sha1;
}
- method list_tree (SHA1 $sha1?) {
- $sha1 ||= $self->head_hash;
- my $object = $self->get_object($sha1);
- return @{$object->tree};
- }
-
method get_object (NonEmptySimpleStr $sha1) {
unless (is_SHA1($sha1)) {
$sha1 = $self->head_hash($sha1);
);
}
- method hash_by_path ($base, $path = '', $type?) {
- $path =~ s{/+$}();
- # FIXME should this really just take the first result?
- my @paths = $self->run_cmd('ls-tree', $base, '--', $path)
- or return;
- my $line = $paths[0];
-
- #'100644 blob 0fa3f3a66fb6a137f6ec2c19351ed4d807070ffa panic.c'
- $line =~ m/^([0-9]+) (.+) ($SHA1RE)\t/;
- return defined $type && $type ne $2
- ? ()
- : $3;
- }
-
method list_revs ( NonEmptySimpleStr :$sha1!,
Int :$count?,
Int :$skip?,
# TODO - support compressed archives
}
- method diff ( Gitalist::Git::Object :$commit!,
- Bool :$patch?,
- Maybe[NonEmptySimpleStr] :$parent?,
- NonEmptySimpleStr :$filename?
- ) {
- return $commit->diff( patch => $patch,
- parent => $parent,
- filename => $filename);
- }
-
method reflog (@logargs) {
my @entries
= $self->run_cmd(qw(log -g), @logargs)
Return the sha1 for HEAD, or any specified head.
-=head2 list_tree ($sha1?)
-
-Return an array of contents for a given tree.
-The tree is specified by sha1, and defaults to HEAD.
-Each item is a L<Gitalist::Git::Object>.
-
=head2 get_object ($sha1)
Return an appropriate subclass of L<Gitalist::Git::Object> for the given sha1.
-=head2 hash_by_path ($sha1, $path, $type?)
-
-Returns the sha1 for a given path, optionally limited by type.
-
=head2 list_revs ($sha1, $count?, $skip?, \%search?, $file?)
Returns a list of revs for the given head ($sha1).