From: "Thomas Kolejka" <Thomas.Kolejka@gmx.at>
To: git@vger.kernel.org
Cc: <jnareb@gmail.com>
Subject: [PATCH] gitweb: Different colours for tags and heads
Date: Fri, 11 Aug 2006 17:12:24 +0200 [thread overview]
Message-ID: <20060811151224.177110@gmx.net> (raw)
Hello,
with the following patch there are different colours for tags
and heads in gitweb. So you can easily differentiate between
them.
Commit ca9e3b124f6313187da641b5cd55100c4ade6a9a
----
diff --git a/gitweb/gitweb.css b/gitweb/gitweb.css
index 47c1ade..c47cbf4 100644
--- a/gitweb/gitweb.css
+++ b/gitweb/gitweb.css
@@ -330,6 +330,15 @@ span.tag {
border-color: #ffffcc #ffee00 #ffee00 #ffffcc;
}
+span.head {
+ padding: 0px 4px;
+ font-size: 10px;
+ font-weight: normal;
+ background-color: #aaaaff;
+ border: 1px solid;
+ border-color: #ccccff #0033cc #0033cc #ccccff;
+}
+
span.atnight {
color: #cc0000;
}
diff --git a/gitweb/gitweb.perl b/gitweb/gitweb.perl
index 626fcc9..755b0b1 100755
--- a/gitweb/gitweb.perl
+++ b/gitweb/gitweb.perl
@@ -363,10 +363,10 @@ sub format_log_line_html {
# format marker of refs pointing to given object
sub git_get_referencing {
- my ($refs, $id) = @_;
+ my ($refs, $id, $class) = @_;
if (defined $refs->{$id}) {
- return ' <span class="tag">' . esc_html($refs->{$id}) . '</span>';
+ return " <span class=\"$class\">" . esc_html($refs->{$id}) . "</span>";
} else {
return "";
}
@@ -1054,7 +1054,7 @@ ## functions printing large fragments of
sub git_shortlog_body {
# uses global variable $project
- my ($revlist, $from, $to, $refs, $extra) = @_;
+ my ($revlist, $from, $to, $refs, $heads, $extra) = @_;
$from = 0 unless defined $from;
$to = $#{$revlist} if (!defined $to || $#{$revlist} < $to);
@@ -1062,8 +1062,9 @@ sub git_shortlog_body {
my $alternate = 0;
for (my $i = $from; $i <= $to; $i++) {
my $commit = $revlist->[$i];
- #my $ref = defined $refs ? git_get_referencing($refs, $commit) : '';
- my $ref = git_get_referencing($refs, $commit);
+ #my $ref = defined $refs ? git_get_referencing($refs, $commit, "tag") : '';
+ my $ref = git_get_referencing($refs, $commit, "tag");
+ my $head = git_get_referencing($heads, $commit, "head");
my %co = git_read_commit($commit);
if ($alternate) {
print "<tr class=\"dark\">\n";
@@ -1078,11 +1079,11 @@ sub git_shortlog_body {
if (length($co{'title_short'}) < length($co{'title'})) {
print $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit"),
-class => "list", -title => "$co{'title'}"},
- "<b>" . esc_html($co{'title_short'}) . "$ref</b>");
+ "<b>" . esc_html($co{'title_short'}) . "$ref $head</b>");
} else {
print $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit"),
-class => "list"},
- "<b>" . esc_html($co{'title'}) . "$ref</b>");
+ "<b>" . esc_html($co{'title'}) . "$ref $head</b>");
}
print "</td>\n" .
"<td class=\"link\">" .
@@ -1407,7 +1408,8 @@ sub git_summary {
$owner = get_file_owner("$projectroot/$project");
}
- my $refs = read_info_ref();
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
git_header_html();
git_page_nav('summary','', $head);
@@ -1423,7 +1425,7 @@ sub git_summary {
my @revlist = map { chomp; $_ } <$fd>;
close $fd;
git_header_div('shortlog');
- git_shortlog_body(\@revlist, 0, 15, $refs,
+ git_shortlog_body(\@revlist, 0, 15, $refs, $heads,
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=shortlog")}, "..."));
my $taglist = git_read_refs("refs/tags");
@@ -1746,8 +1748,10 @@ sub git_tree {
close $fd or die_error(undef, "Reading tree failed");
$/ = "\n";
- my $refs = read_info_ref();
- my $ref = git_get_referencing($refs, $hash_base);
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
+ my $ref = git_get_referencing($refs, $hash_base, "tag");
+ my $head = git_get_referencing($heads, $hash_base, "head");
git_header_html();
my $base_key = "";
my $base = "";
@@ -1755,7 +1759,7 @@ sub git_tree {
if (defined $hash_base && (my %co = git_read_commit($hash_base))) {
$base_key = ";hb=$hash_base";
git_page_nav('tree','', $hash_base);
- git_header_div('commit', esc_html($co{'title'}) . $ref, $hash_base);
+ git_header_div('commit', esc_html($co{'title'}) . $ref . $head, $hash_base);
} else {
print "<div class=\"page_nav\">\n";
print "<br/><br/></div>\n";
@@ -1818,7 +1822,8 @@ sub git_log {
if (!defined $page) {
$page = 0;
}
- my $refs = read_info_ref();
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
my $limit = sprintf("--max-count=%i", (100 * ($page+1)));
open my $fd, "-|", $GIT, "rev-list", $limit, $hash
@@ -1839,13 +1844,14 @@ sub git_log {
}
for (my $i = ($page * 100); $i <= $#revlist; $i++) {
my $commit = $revlist[$i];
- my $ref = git_get_referencing($refs, $commit);
+ my $ref = git_get_referencing($refs, $commit, "tag");
+ my $head = git_get_referencing($heads, $commit, "head");
my %co = git_read_commit($commit);
next if !%co;
my %ad = date_str($co{'author_epoch'});
git_header_div('commit',
"<span class=\"age\">$co{'age_string'}</span>" .
- esc_html($co{'title'}) . $ref,
+ esc_html($co{'title'}) . $ref . $head,
$commit);
print "<div class=\"title_text\">\n" .
"<div class=\"log_link\">\n" .
@@ -1902,8 +1908,10 @@ sub git_commit {
if ($hash =~ m/^[0-9a-fA-F]{40}$/) {
$expires = "+1d";
}
- my $refs = read_info_ref();
- my $ref = git_get_referencing($refs, $co{'id'});
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
+ my $ref = git_get_referencing($refs, $co{'id'}, "tag");
+ my $head = git_get_referencing($heads, $co{'id'}, "head");
my $formats_nav = '';
if (defined $file_name && defined $co{'parent'}) {
my $parent = $co{'parent'};
@@ -1915,9 +1923,9 @@ sub git_commit {
$formats_nav);
if (defined $co{'parent'}) {
- git_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
+ git_header_div('commitdiff', esc_html($co{'title'}) . $ref . $head, $hash);
} else {
- git_header_div('tree', esc_html($co{'title'}) . $ref, $co{'tree'}, $hash);
+ git_header_div('tree', esc_html($co{'title'}) . $ref . $head, $co{'tree'}, $hash);
}
print "<div class=\"title_text\">\n" .
"<table cellspacing=\"0\">\n";
@@ -2126,13 +2134,15 @@ sub git_commitdiff {
if ($hash =~ m/^[0-9a-fA-F]{40}$/) {
$expires = "+1d";
}
- my $refs = read_info_ref();
- my $ref = git_get_referencing($refs, $co{'id'});
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
+ my $ref = git_get_referencing($refs, $co{'id'}, "tag");
+ my $head = git_get_referencing($heads, $co{'id'}, "head");
my $formats_nav =
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commitdiff_plain;h=$hash;hp=$hash_parent")}, "plain");
git_header_html(undef, $expires);
git_page_nav('commitdiff','', $hash,$co{'tree'},$hash, $formats_nav);
- git_header_div('commit', esc_html($co{'title'}) . $ref, $hash);
+ git_header_div('commit', esc_html($co{'title'}) . $ref . $head, $hash);
print "<div class=\"page_body\">\n";
my $comment = $co{'comment'};
my $empty = 0;
@@ -2271,7 +2281,8 @@ sub git_history {
if (!%co) {
die_error(undef, "Unknown commit object");
}
- my $refs = read_info_ref();
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
git_header_html();
git_page_nav('','', $hash_base,$co{'tree'},$hash_base);
git_header_div('commit', esc_html($co{'title'}), $hash_base);
@@ -2294,7 +2305,8 @@ sub git_history {
if (!%co) {
next;
}
- my $ref = git_get_referencing($refs, $commit);
+ my $ref = git_get_referencing($refs, $commit, "tag");
+ my $head = git_get_referencing($heads, $commit, "head");
if ($alternate) {
print "<tr class=\"dark\">\n";
} else {
@@ -2304,7 +2316,7 @@ sub git_history {
print "<td title=\"$co{'age_string_age'}\"><i>$co{'age_string_date'}</i></td>\n" .
"<td><i>" . esc_html(chop_str($co{'author_name'}, 15, 3)) . "</i></td>\n" .
"<td>" . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit"), -class => "list"}, "<b>" .
- esc_html(chop_str($co{'title'}, 50)) . "$ref</b>") . "</td>\n" .
+ esc_html(chop_str($co{'title'}, 50)) . $ref . $head . "</b>") . "</td>\n" .
"<td class=\"link\">" .
$cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commit;h=$commit")}, "commit") .
" | " . $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=commitdiff;h=$commit")}, "commitdiff") .
@@ -2468,7 +2480,8 @@ sub git_shortlog {
if (!defined $page) {
$page = 0;
}
- my $refs = read_info_ref();
+ my $refs = read_info_ref("tags");
+ my $heads = read_info_ref("heads");
my $limit = sprintf("--max-count=%i", (100 * ($page+1)));
open my $fd, "-|", $GIT, "rev-list", $limit, $hash
@@ -2489,7 +2502,7 @@ sub git_shortlog {
git_page_nav('shortlog','', $hash,$hash,$hash, $paging_nav);
git_header_div('summary', $project);
- git_shortlog_body(\@revlist, ($page * 100), $#revlist, $refs, $next_link);
+ git_shortlog_body(\@revlist, ($page * 100), $#revlist, $refs, $heads, $next_link);
git_footer_html();
}
----
Bye,
Thomas
--
Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
next reply other threads:[~2006-08-11 15:12 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-08-11 15:12 Thomas Kolejka [this message]
2006-08-11 15:34 ` [PATCH] gitweb: Different colours for tags and heads Jakub Narebski
2006-08-11 21:50 ` Junio C Hamano
2006-08-12 0:12 ` Jakub Narebski
2006-08-12 0:58 ` Junio C Hamano
2006-08-14 5:22 ` Martin Waitz
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=20060811151224.177110@gmx.net \
--to=thomas.kolejka@gmx.at \
--cc=git@vger.kernel.org \
--cc=jnareb@gmail.com \
/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).