summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: c7d94cd)
raw | patch | inline | side by side (parent: c7d94cd)
author | Giuseppe Bilotta <giuseppe.bilotta@gmail.com> | |
Thu, 11 Nov 2010 12:26:14 +0000 (13:26 +0100) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 17 Nov 2010 21:02:19 +0000 (13:02 -0800) |
When 'remotes' view is passed the 'hash' parameter, interpret it as the
name of a remote and limit the view the the heads of that remote.
In single-remote view we let the user switch easily to the default
remotes view by specifying an -action_extra for the page header and by
enabling the 'remotes' link in the reference navigation submenu.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
name of a remote and limit the view the the heads of that remote.
In single-remote view we let the user switch easily to the default
remotes view by specifying an -action_extra for the page header and by
enabling the 'remotes' link in the reference navigation submenu.
Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Acked-by: Jakub Narebski <jnareb@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
gitweb/gitweb.perl | patch | blob | history |
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index c3b89666c5a4fe89665ba48379ac6c363c26c11c..bf387572bf7f94773809f1b12f24f07cf84e0bbd 100755 (executable)
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
or die_error(403, "Remote heads view is disabled");
my $head = git_get_head_hash($project);
- git_header_html();
- git_print_page_nav('','', $head,undef,$head,format_ref_views('remotes'));
- git_print_header_div('summary', $project);
+ my $remote = $input_params{'hash'};
+
+ my @remotelist;
+
+ if (defined $remote) {
+ # only display the heads in a given remote, stripping the
+ # remote name which is already visible elsewhere
+ @remotelist = map {
+ my $ref = $_ ;
+ $ref->{'name'} =~ s!^$remote/!!;
+ $ref
+ } git_get_heads_list(undef, "remotes/$remote");
+ } else {
+ @remotelist = git_get_heads_list(undef, 'remotes');
+ }
+
+ git_header_html(undef, undef, -action_extra => $remote);
+ git_print_page_nav('', '', $head, undef, $head,
+ format_ref_views($remote ? '' : 'remotes'));
+
+ if (defined $remote) {
+ git_print_header_div('remotes', "$remote remote for $project");
+ } else {
+ git_print_header_div('summary', "$project remotes");
+ }
- my @remotelist = git_get_heads_list(undef, 'remotes');
if (@remotelist) {
git_heads_body(\@remotelist, $head);
}
+
git_footer_html();
}