git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Kacper Kornet <draenog@pld-linux.org>
Cc: git@vger.kernel.org
Subject: Re: [PATCH] gitweb: Option to omit column with time of the last change
Date: Wed, 4 Apr 2012 01:12:01 +0200	[thread overview]
Message-ID: <201204040112.02269.jnareb@gmail.com> (raw)
In-Reply-To: <20120403132735.GA12389@camk.edu.pl>

On Tue, 3 Apr 2012, Kacper Kornet wrote:

> Generating information about last change for a large number of git
> repositories can be time consuming. This commit adds an option to
> omit 'Last Change' column when presenting the list of repositories.
>
This is quite a good idea, I think.

Even a better solution would be to add caching support to gitweb, but
first it is a long way from being ready, and second not in all cases
you are able to / wants to have a cache.
 
> Signed-off-by: Kacper Kornet <draenog@pld-linux.org>
> ---
>  Documentation/gitweb.conf.txt |    3 +++
>  gitweb/gitweb.perl            |   16 +++++++++++-----
>  2 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/Documentation/gitweb.conf.txt b/Documentation/gitweb.conf.txt
> index 7aba497..bfeef21 100644
> --- a/Documentation/gitweb.conf.txt
> +++ b/Documentation/gitweb.conf.txt
> @@ -403,6 +403,9 @@ $default_projects_order::
>  	i.e. path to repository relative to `$projectroot`), "descr"
>  	(project description), "owner", and "age" (by date of most current
>  	commit).
> +
> +$no_list_age::
> +	Omit column with date of the most curren commit

s/curren/current/

Thanks for adding documentation, though I would prefer if you expanded
this description (for example including the information that it touches
projects list page).

>  +

This '+' here means "continuation".  You by accident inserted
description of new $no_list_age in the middle of description for
$default_projects_order variable...

>  Default value is "project".  Unknown value means unsorted.

...as you can see here.

>  
> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index a8b5fad..f42468c 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -133,6 +133,9 @@ our $default_projects_order = "project";
>  # (only effective if this variable evaluates to true)
>  our $export_ok = "++GITWEB_EXPORT_OK++";
>  
> +# don't generate age column
> +our $no_list_age = 0;

"age" column where?

Hmmm... can't we come with a better name than $no_list_age?

> +
>  # show repository only if this subroutine returns true
>  # when given the path to the project, for example:
>  #    sub { return -e "$_[0]/git-daemon-export-ok"; }
> @@ -5462,9 +5465,11 @@ sub git_project_list_rows {
>  		                        : esc_html($pr->{'descr'})) .
>  		      "</td>\n" .
>  		      "<td><i>" . chop_and_escape_str($pr->{'owner'}, 15) . "</i></td>\n";
> -		print "<td class=\"". age_class($pr->{'age'}) . "\">" .
> -		      (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" .
> -		      "<td class=\"link\">" .
> +		unless ($no_list_age) {
> +		        print "<td class=\"". age_class($pr->{'age'}) . "\">" .
> +		            (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n";
> +		}
> +		print"<td class=\"link\">" .

O.K.  I guess that it ismore readable than

  +		print "<td class=\"". age_class($pr->{'age'}) . "\">" .
  +		      (defined $pr->{'age_string'} ? $pr->{'age_string'} : "No commits") . "</td>\n" .
  +		      "<td class=\"link\">"
  +			unless ($no_list_age);

>  		      $cgi->a({-href => href(project=>$pr->{'path'}, action=>"summary")}, "summary")   . " | " .
>  		      $cgi->a({-href => href(project=>$pr->{'path'}, action=>"shortlog")}, "shortlog") . " | " .
>  		      $cgi->a({-href => href(project=>$pr->{'path'}, action=>"log")}, "log") . " | " .
> @@ -5495,7 +5500,8 @@ sub git_project_list_body {
>  	                                 'tagfilter'  => $tagfilter)
>  		if ($tagfilter || $search_regexp);
>  	# fill the rest
> -	@projects = fill_project_list_info(\@projects);
> +	my @all_fields = $no_list_age ? ('descr', 'descr_long', 'owner', 'ctags', 'category') : ();
> +	@projects = fill_project_list_info(\@projects, @all_fields);

That looks quite strange on first glance.  I know that empty list means
filling all fields, but the casual reader migh wonder about this
conditional expression.

Perhaps it would be better to write it this way:

  -	@projects = fill_project_list_info(\@projects);
  +	my @fields = qw(descr descr_long owner ctags category);
  +	push @fields, 'age' unless ($no_list_age);
  +	@projects = fill_project_list_info(\@projects, @fields);

or something like that.

Well, at least until we come up with a better way to specify "all fields
except those specified".

>  
>  	$order ||= $default_projects_order;
>  	$from = 0 unless defined $from;
> @@ -5527,7 +5533,7 @@ sub git_project_list_body {
>  		print_sort_th('project', $order, 'Project');
>  		print_sort_th('descr', $order, 'Description');
>  		print_sort_th('owner', $order, 'Owner');
> -		print_sort_th('age', $order, 'Last Change');
> +		print_sort_th('age', $order, 'Last Change') unless $no_list_age;

  +		print_sort_th('age', $order, 'Last Change')
  +			unless $no_list_age;

might be more readable.

>  		print "<th></th>\n" . # for links
>  		      "</tr>\n";
>  	}
> -- 
> 1.7.10.rc3
> 

-- 
Jakub Narebski
Poland

  reply	other threads:[~2012-04-03 23:12 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-04-03 13:27 [PATCH] gitweb: Option to omit column with time of the last change Kacper Kornet
2012-04-03 23:12 ` Jakub Narebski [this message]
2012-04-04  6:39   ` Kacper Kornet
2012-04-04 14:31     ` Jakub Narebski
2012-04-04 16:22       ` Kacper Kornet
2012-04-14 13:16         ` Jakub Narebski
2012-04-16 10:12           ` Kacper Kornet
2012-04-16 20:06             ` Jakub Narebski
2012-04-16 21:39               ` Kacper Kornet
2012-04-17 23:36                 ` Jakub Narebski
2012-04-19 16:07                   ` [PATCH] gitweb: Improve repository verification Jakub Narebski
2012-04-19 18:30                     ` Junio C Hamano
2012-04-19 19:46                       ` Jakub Narebski
2012-04-21 11:28                         ` Jakub Narebski
2012-04-24 17:39                     ` [PATCH 1/2] gitweb: Option to omit column with time of the last change Kacper Kornet
2012-04-24 17:41                     ` [PATCH 2/2] gitweb: Option to not display information about owner Kacper Kornet
2012-04-26  4:39                       ` Junio C Hamano
2012-04-26 15:07                         ` Kacper Kornet
2012-04-26 15:53                           ` Junio C Hamano
2012-04-26 16:35                             ` Kacper Kornet
2012-04-26 16:45                               ` [PATCH v2 " Kacper Kornet
2012-04-24 17:36                   ` [PATCH] gitweb: Option to omit column with time of the last change Kacper Kornet
2012-04-04 17:14       ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201204040112.02269.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=draenog@pld-linux.org \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).