=cut
sub get_object {
- $_[0]->gpp->get_object($_[1]);
+ # We either want an object or undef, *not* an empty list.
+ return $_[0]->gpp->get_object($_[1]) || undef;
}
=head2 is_git_repo
|| scalar @revs > 2
|| any { !$self->valid_rev($_) } @revs;
- return $self->command(diff => @revs);
+ return $self->command(diff => '--full-index', @revs);
}
=begin
my @diff = $self->raw_diff(@revs);
my @ret;
- for my $line (@diff) {
+ for (@diff) {
# This regex is a little pathological.
- if($line =~ m{^diff --git (a/(.*?)) (b/\2)}) {
+ if(m{^diff --git (a/(.*?)) (b/\2)}) {
push @ret, {
- head => $line,
+ head => $_,
a => $1,
b => $3,
file => $2,
next;
}
- if($line =~ /^index (\w+)\.\.(\w+) (\d+)$/) {
+ if(/^index (\w+)\.\.(\w+) (\d+)$/) {
@{$ret[-1]}{qw(index src dst mode)} = ($_, $1, $2, $3);
next
}
unless @ret;
# XXX Somewhat hacky. Ahem.
- $ret[-1]{diff} .= "$line\n";
+ $ret[-1]{diff} .= "$_\n";
}
return @ret;