From: Jakub Narebski <jnareb@gmail.com>
To: git@vger.kernel.org
Subject: Re: [PATCH 6/9] gitweb: Change appereance of marker of refs pointing to given object
Date: Tue, 15 Aug 2006 18:34:17 +0200 [thread overview]
Message-ID: <ebst0v$3gt$1@sea.gmane.org> (raw)
In-Reply-To: 7vy7tqc06u.fsf@assigned-by-dhcp.cox.net
Junio C Hamano wrote:
> Jakub Narebski <jnareb@gmail.com> writes:
>
>> Change git_get_references to include type of ref in the %refs value, which
>> means putting everything after 'refs/' as a ref name, not only last
>> part of the name. Instead of separating refs pointing to the same
>> object by " / " separator, use anonymous array reference to store all
>> refs pointing to given object.
>>
>> Use 'git-ls-remote .' if $projectroot/$project/info/refs does not
>> exist. (Perhaps it should be used always.)
>>
>> Refs are now in separate span elements. Class is dependent on the ref
>> type: currently known classes are 'tag', 'head', 'remote', and 'ref'
>> (last one for HEAD and other refs in the main directory). There is
>> encompassing span element of class refs, just in case of unknown ref
>> type.
>
> I do not see definition that matches "span.refs span.remote" in
> the CSS, though.
It get's default style "span.refs span" (and fefault colors).
>> + # e.g. tags/v2.6.11 or heads/next
>> + if ($ref =~ m!^(.*?)s?/(.*)$!) {
>> + $type = $1;
>> + $name = $2;
>> + } else {
>> + $type = "ref";
>> + $name = $ref;
>> + }
>
> Hmph. Maybe have a hash that defines the ones you know how to
> handle, and do something like:
>
> if ($ref =~ m|^([^/]+)/(.*)$| && exists $i_know_this_class{$1}) {
> $type = $1;
> $name = $2;
> }
> else {
> $type = 'ref';
> $name = $ref;
> }
But what types are known is defined in CSS, not in gitweb.perl. The rule
is that type is defined by first component of the ref name, in singular form
(so with optional final s removed, refs -> ref, tags -> tag, remotes -> remote).
All unknown types get default "span.refs span" format, thanks to encompassing
span element.
"ref" class is for refs directly in $GIT_DIR, like HEAD or ORIG_HEAD (as of now
you cannot get such a ref due to the regexp used in git_get_references, and
the fact that you have no such refs in $GIT_DIR/info/refs file, and
'git-ls-remote .' gives only HEAD; but we could add them 'by hand').
>> @@ -561,18 +578,24 @@ sub git_get_project_owner {
>>...
>> + if ($line =~ m/^([0-9a-fA-F]{40})\trefs\/($type\/?[^\^]+)/) {
>> if (defined $refs{$1}) {
>> - $refs{$1} .= " / $2";
>> + push @{$refs{$1}}, $2;
>> } else {
>> - $refs{$1} = $2;
>> + $refs{$1} = [ $2 ];
>> }
>> }
>
> It would work as in your patch, but I would have preferred to
> see "exists $refs{$1}" there instead of "defined".
>
> Or lose the if() and do it like this, which would be cleaner?
>
> if ($line =~ ...) {
> push @{$refs{$1}}, $2;
> }
That's even better.
--
Jakub Narebski
Warsaw, Poland
ShadeHawk on #git
next prev parent reply other threads:[~2006-08-15 16:34 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-14 0:02 [PATCH 0/9] gitweb: Great subroutine renaming + task separation into subroutines + improvements Jakub Narebski
2006-08-14 0:05 ` [PATCH 1/9] gitweb: Great subroutines renaming Jakub Narebski
2006-08-14 23:28 ` Junio C Hamano
2006-08-14 0:07 ` [PATCH 2/9] gitweb: Separate ref parsing in git_get_refs_list into parse_ref Jakub Narebski
2006-08-15 0:29 ` Junio C Hamano
2006-08-15 16:18 ` Jakub Narebski
2006-08-14 0:08 ` [PATCH 3/9] gitweb: Refactor printing shortened title in git_shortlog_body and git_tags_body Jakub Narebski
2006-08-15 0:29 ` Junio C Hamano
2006-08-14 0:09 ` [PATCH 4/9] gitweb: Separate main part of git_history into git_history_body Jakub Narebski
2006-08-14 0:10 ` [PATCH 5/9] gitweb: Separate finding project owner into git_get_project_owner Jakub Narebski
2006-08-14 0:14 ` [PATCH 6/9] gitweb: Change appereance of marker of refs pointing to given object Jakub Narebski
2006-08-14 9:30 ` Jakub Narebski
2006-08-15 0:27 ` Junio C Hamano
2006-08-15 16:34 ` Jakub Narebski [this message]
2006-08-14 0:15 ` [PATCH 7/9] gitweb: Skip comments in mime.types like file Jakub Narebski
2006-08-14 0:16 ` [PATCH 8/9] gitweb: True fix: Support for the standard mime.types map in gitweb Jakub Narebski
2006-08-15 0:33 ` Junio C Hamano
2006-08-15 16:43 ` Jakub Narebski
2006-08-14 0:18 ` [PATCH 9/9] gitweb: Separate printing difftree in git_commit into git_difftree_body Jakub Narebski
2006-08-15 0:40 ` Junio C Hamano
2006-08-15 16:45 ` Jakub Narebski
2006-08-14 10:40 ` [PATCH 0/9] gitweb: Great subroutine renaming + task separation into subroutines + improvements Jakub Narebski
2006-08-15 0:42 ` 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='ebst0v$3gt$1@sea.gmane.org' \
--to=jnareb@gmail.com \
--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).