git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Jakub Narebski <jnareb@gmail.com>
To: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
Cc: git@vger.kernel.org, Petr Baudis <pasky@ucw.cz>
Subject: Re: [PATCH] gitweb: ref markers link to named shortlogs
Date: Thu, 21 Aug 2008 23:32:05 +0200	[thread overview]
Message-ID: <200808212332.07095.jnareb@gmail.com> (raw)
In-Reply-To: <1219341860-4913-1-git-send-email-giuseppe.bilotta@gmail.com>

On Thu, 21 Aug 2008, Giuseppe Bilotta wrote:

> This patch turns ref markers for tags and heads into links to
> appropriate views for the ref name. Appropriate changes are made in the
> CSS to prevent ref markers to be annoyingly blue and underlined.
> 
> For all git ref types it's assumed that the preferred view is named like
> the ref type itself. For commits, we map the view to shortlog.

NAK.

It is a good idea, but not so good solution.

> --- a/gitweb/gitweb.css
> +++ b/gitweb/gitweb.css

> +span.refs span a {
> +	text-decoration: none;
> +	color: inherit;
> +}

Possible improvement:

We would probably want to make this link discoverable, by adding
underline on :hover, like for other "hidden links" in gitweb (for
example in commitdiff view).

> diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
> index 90cd99b..a12ce87 100755
> --- a/gitweb/gitweb.perl
> +++ b/gitweb/gitweb.perl
> @@ -1093,10 +1093,14 @@ sub format_log_line_html {
>  sub format_ref_marker {
>  	my ($refs, $id) = @_;
>  	my $markers = '';
> +	my %view = (
> +		"commit" => "shortlog",
> +	);
>  
>  	if (defined $refs->{$id}) {
>  		foreach my $ref (@{$refs->{$id}}) {
>  			my ($type, $name) = qw();
> +			my $git_type = git_get_type($ref);
>  			# e.g. tags/v2.6.11 or heads/next
>  			if ($ref =~ m!^(.*?)s?/(.*)$!) {
>  				$type = $1;

git_get_type calls 'git cat-file -t', so for each ref shown you make
*additional call* to git command (additional fork).  Not good, especially
that you can get information if a ref is a tag (indirect reference)
or not one can get from within git_get_references; which in turn
uses "git show-refs --dereference" and used to use either 
"git peek-remote ." or ".git/info/refs" file.  If there is <name>^{},
then <name> is indirect reference: is a tag.

As we display ref markers only for log-like views, marker can be tag
or can be "lightweight reference" and be only a commit (in theory
we could show ref markers also for tree and blob items, but it is not
important now).

-- 
Jakub Narebski
Poland

  reply	other threads:[~2008-08-21 21:32 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-21 18:04 [PATCH] gitweb: ref markers link to named shortlogs Giuseppe Bilotta
2008-08-21 21:32 ` Jakub Narebski [this message]
2008-08-22  7:21   ` Giuseppe Bilotta
2008-08-22  8:49     ` Jakub Narebski
     [not found]       ` <cb7bb73a0808220231w37d2341eic56cabb595399f68@mail.gmail.com>
2008-08-22 10:56         ` Jakub Narebski
2008-08-22 12:34           ` Giuseppe Bilotta
2008-08-22 12:39           ` [PATCH v4] " Giuseppe Bilotta
2008-08-22 13:01             ` Jakub Narebski
2008-08-22 13:20               ` Giuseppe Bilotta
2008-08-22 13:42                 ` Jakub Narebski
2008-08-22 14:03                   ` Giuseppe Bilotta
2008-08-22 13:29               ` [PATCH v5] " Giuseppe Bilotta
2008-08-24 23:53                 ` Jakub Narebski
2008-08-25  2:05                   ` Miklos Vajna
2008-08-25  2:44                     ` Jakub Narebski
2008-08-25  4:11                       ` Junio C Hamano
2008-08-25 18:42                         ` Jakub Narebski
2008-08-25 19:48                           ` Junio C Hamano
2008-08-26 12:16                           ` [PATCH v6] " Giuseppe Bilotta
2008-08-26 13:09                           ` [PATCH v7] " Giuseppe Bilotta
2008-08-22  8:03   ` [PATCHv3] " Giuseppe Bilotta
2008-08-24 19:30 ` [PATCH] " Lea Wiemann
2008-08-24 19:41   ` Giuseppe Bilotta
2008-08-24 20:37   ` Jakub Narebski
2008-08-25 23:28     ` Giuseppe Bilotta
2008-08-26  8:15       ` Jakub Narebski
2008-08-26 10:58         ` Giuseppe Bilotta
2008-08-26 11:49           ` Jakub Narebski
2008-08-26 12:29             ` Giuseppe Bilotta
2008-08-27 18:36             ` Giuseppe Bilotta
2008-08-28  1:43             ` Lea Wiemann
2008-08-28  6:26               ` Giuseppe Bilotta
2008-08-28  6:48               ` Jakub Narebski
  -- strict thread matches above, loose matches on Subject: below --
2008-08-02 15:39 Giuseppe Bilotta
2008-08-03 12:03 ` Petr Baudis
2008-08-03 13:14   ` Giuseppe Bilotta
2008-08-03 13:20     ` Petr Baudis

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=200808212332.07095.jnareb@gmail.com \
    --to=jnareb@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=giuseppe.bilotta@gmail.com \
    --cc=pasky@ucw.cz \
    /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).