extends Gitalist::Git::Object
with Gitalist::Git::Object::HasTree {
use MooseX::Types::Moose qw/Str Int Bool Maybe ArrayRef/;
- use MooseX::Types::Common::String qw/NonEmptySimpleStr/;
+ use MooseX::Types::Common::String qw/NonEmptySimpleStr SimpleStr/;
use Moose::Autobox;
use List::MoreUtils qw/any zip/;
our $SHA1RE = qr/[0-9a-fA-F]{40}/;
return $self->_run_cmd_fh( @cmd );
}
- method diff ( Maybe[Bool] :$patch?,
- Maybe[NonEmptySimpleStr] :$parent?,
- Maybe[NonEmptySimpleStr] :$file?
- ) {
+ method diff ( Bool :$patch?,
+ NonEmptySimpleStr :$parent?,
+ NonEmptySimpleStr :$filename?
+ ) {
$parent = $parent
? $parent
: $self->parents <= 1
? $self->parent_sha1
: '-c';
my @etc = (
- ( $file ? ('--', $file) : () ),
+ ( $filename ? ('--', $filename) : () ),
);
my @out = $self->_raw_diff(
$line{sha1} = $line{sha1dst};
$line{is_new} = $line{sha1src} =~ /^0+$/
if $line{sha1src};
- @line{qw/status sim/} = $line{status} =~ /(R)(\d+)/
+ @line{qw/status sim/} = $line{status} =~ /(R)0*(\d+)/
if $line{status} =~ /^R/;
push @ret, \%line;
}
next;
}
- if (/^index (\w+)\.\.(\w+) (\d+)$/) {
+ if (/^index (\w+)\.\.(\w+)(?: (\d+))?$/) {
@{$ret[-1]}{qw(index src dst mode)} = ($_, $1, $2, $3);
next
}
# XXX A prime candidate for caching.
- method blame ( NonEmptySimpleStr $filename ) {
+ method blame ( NonEmptySimpleStr $filename, SimpleStr $sha1 ) {
my @blameout = $self->_run_cmd_list(
- blame => '-p', $self->sha1, '--', $filename
+ blame => '-p', $sha1 ? $sha1 : $self->sha1, '--', $filename
);
my(%commitdata, @filedata);
=head1 SYNOPSIS
- my $commit = Project->get_object($commit_sha1);
+ my $commit = Repository->get_object($commit_sha1);
=head1 DESCRIPTION