}
}
-sub _get_commit {
+sub _get_object {
my($self, $c, $haveh) = @_;
my $h = $haveh || $c->req->param('h') || '';
my ( $self, $c ) = @_;
my $project = $c->stash->{Project};
$c->detach('error_404') unless $project;
- my $commit = $self->_get_commit($c);
- my @heads = $project->heads;
+ my $commit = $self->_get_object($c);
+ my @heads = @{$project->heads};
my $maxitems = Gitalist->config->{paging}{summary} || 10;
$c->stash(
commit => $commit,
- info => $project->info,
+# info => $project->info,
log_lines => [$project->list_revs(
sha1 => $commit->sha1,
count => $maxitems,
my ( $self, $c ) = @_;
my $project = $c->stash->{Project};
$c->stash(
- commit => $self->_get_commit($c),
- heads => [$project->heads],
+ commit => $self->_get_object($c),
+ heads => $project->heads,
action => 'heads',
);
}
my $filename = $c->req->param('f') || '';
$c->stash(
- blob => $project->get_object($h)->contents,
+ blob => $project->get_object($h)->content,
head => $project->get_object($hb),
filename => $filename,
# XXX Hack hack hack, see View::SyntaxHighlight
sub blobdiff : Local {
my ( $self, $c ) = @_;
- my $commit = $self->_get_commit($c, $c->req->param('hb'));
+ my $commit = $self->_get_object($c, $c->req->param('hb'));
my $filename = $c->req->param('f')
|| croak("No file specified!");
my($tree, $patch) = $c->stash->{Project}->diff(
sub commit : Local {
my ( $self, $c ) = @_;
my $project = $c->stash->{Project};
- my $commit = $self->_get_commit($c);
+ my $commit = $self->_get_object($c);
$c->stash(
commit => $commit,
diff_tree => ($project->diff(commit => $commit))[0],
sub commitdiff : Local {
my ( $self, $c ) = @_;
- my $commit = $self->_get_commit($c);
+ my $commit = $self->_get_object($c);
my($tree, $patch) = $c->stash->{Project}->diff(
commit => $commit,
parent => $c->req->param('hp') || undef,
sub shortlog : Local {
my ( $self, $c ) = @_;
my $project = $c->stash->{Project};
- my $commit = $self->_get_commit($c);
+ my $commit = $self->_get_object($c);
my %logargs = (
sha1 => $commit->sha1,
count => Gitalist->config->{paging}{log} || 25,
sub tree : Local {
my ( $self, $c ) = @_;
my $project = $c->stash->{Project};
- my $commit = $self->_get_commit($c, $c->req->param('hb'));
- my $tree = $project->get_object($c->req->param('h') || $commit->tree_sha1);
+ my $commit = $self->_get_object($c, $c->req->param('hb'));
+ my $tree = $self->_get_object($c, $c->req->param('h') || $commit->tree_sha1);
$c->stash(
- # XXX Useful defaults needed ...
commit => $commit,
tree => $tree,
tree_list => [$project->list_tree($tree->sha1)],
- path => $c->req->param('f') || '',
+ path => $c->req->param('f') || '',
action => 'tree',
);
}
my($self, $c) = @_;
$c->stash(current_action => 'GitRepos');
my $project = $c->stash->{Project};
- my $commit = $self->_get_commit($c);
+ my $commit = $self->_get_object($c);
# Lifted from /shortlog.
my %logargs = (
sha1 => $commit->sha1,
}
sub search_help : Local {
- # FIXME - implement search_help
- Carp::croak "Not implemented.";
+ my ($self, $c) = @_;
+ $c->stash(template => 'search_help.tt2');
}
sub atom : Local {
}
sub patch : Local {
- # FIXME - implement patches
- Carp::croak "Not implemented.";
+ my ($self, $c) = @_;
+ $c->detach('patches', [1]);
}
sub patches : Local {
- # FIXME - implement patches
- Carp::croak "Not implemented.";
+ my ($self, $c, $count) = @_;
+ $count ||= Gitalist->config->{patches}{max};
+ my $commit = $self->_get_object($c);
+ my $parent = $c->req->param('hp') || undef;
+ my $patch = $commit->patch( $parent, $count );
+ $c->response->body($patch);
+ $c->response->content_type('text/plain');
+ $c->response->status(200);
}
sub snapshot : Local {
Carp::croak "Not implemented.";
}
-sub history : Local {
- # FIXME - implement history
- Carp::croak "Not implemented.";
-}
-
sub commitdiff_plain : Local {
# FIXME - implement commitdiff_plain
Carp::croak "Not implemented.";
}
-
-
=head2 auto
Populate the header and footer. Perhaps not the best location.