sub _diff {
my ($self, $c) = @_;
- my $commit = $c->stash->{Commit};
- my %filename = $c->stash->{filename} ? (filename => $c->stash->{filename}) : ();
- my($tree, $patch) = $c->stash->{Repository}->diff(
- commit => $commit,
- parent => $c->stash->{parent},
- patch => 1,
- %filename,
+ my %diff_args = ( patch => 1 );
+ foreach my $arg qw/filename parent/ {
+ if (defined $c->stash->{$arg}) {
+ $diff_args{$arg} = $c->stash->{$arg};
+ };
+ };
+ my ($tree, $patch) = $c->stash->{Commit}->diff(
+ %diff_args,
);
$c->stash(
diff_tree => $tree,
# XXX Hack hack hack, see View::SyntaxHighlight
blobs => [map $_->{diff}, @$patch],
language => 'Diff',
- %filename,
);
}
after commit => sub {
my($self, $c) = @_;
- $c->stash->{diff_tree} = ($c->stash->{Repository}->diff(
- commit => $c->stash->{Commit},
- ))[0];
+ $c->stash->{diff_tree} = ( $c->stash->{Commit}->diff )[0];
};
sub raw : Chained('find') Does('FilenameArgs') Args() {
return $self->_run_cmd_fh( @cmd );
}
- method diff ( Maybe[Bool] :$patch?,
- Maybe[NonEmptySimpleStr] :$parent?,
- Maybe[NonEmptySimpleStr] :$filename?
- ) {
+ method diff ( Bool :$patch?,
+ NonEmptySimpleStr :$parent?,
+ NonEmptySimpleStr :$filename?
+ ) {
$parent = $parent
? $parent
: $self->parents <= 1
# 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)