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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.