summaryrefslogtreecommitdiffstats
path: root/gitweb/gitweb.cgi
diff options
context:
space:
mode:
authorJakub Narebski <jnareb@gmail.com>2006-07-31 02:21:52 +0200
committerJunio C Hamano <junkio@cox.net>2006-07-31 03:43:28 +0200
commit594e212bc849039a204deef1d16c2eddcc451532 (patch)
treed6c458a08c8a9e995fc40c3d3a73767faff83101 /gitweb/gitweb.cgi
parentgitweb: Remove characters entities entirely when shortening string (diff)
downloadgit-594e212bc849039a204deef1d16c2eddcc451532.tar.xz
git-594e212bc849039a204deef1d16c2eddcc451532.zip
gitweb: Ref refactoring - use git_get_referencing for marking tagged/head commits
Use git_get_referencing to get HTML code for markers showing which refs (tags and heads) point to current commit. It would be much easier to change format of markers in one or two places than thorough the gitweb.cgi file. Added comment about read_info_ref subroutine: for $type == "" (empty argument) it saves only last path part of ref name e.g. from 'refs/heads/jn/gitweb' it would leave only 'gitweb'. Some reordering. Added $ref in one place. Signed-off-by: Jakub Narebski <jnareb@gmail.com> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to '')
-rwxr-xr-xgitweb/gitweb.cgi53
1 files changed, 22 insertions, 31 deletions
diff --git a/gitweb/gitweb.cgi b/gitweb/gitweb.cgi
index 1ff29bc291..2f1731870d 100755
--- a/gitweb/gitweb.cgi
+++ b/gitweb/gitweb.cgi
@@ -1024,6 +1024,8 @@ sub read_info_ref {
open my $fd, "$projectroot/$project/info/refs" or return;
while (my $line = <$fd>) {
chomp $line;
+ # attention: for $type == "" it saves only last path part of ref name
+ # e.g. from 'refs/heads/jn/gitweb' it would leave only 'gitweb'
if ($line =~ m/^([0-9a-fA-F]{40})\t.*$type\/([^\^]+)/) {
if (defined $refs{$1}) {
$refs{$1} .= " / $2";
@@ -1036,6 +1038,16 @@ sub read_info_ref {
return \%refs;
}
+sub git_get_referencing {
+ my ($refs, $id) = @_;
+
+ if (defined $refs->{$id}) {
+ return ' <span class="tag">' . esc_html($refs->{$id}) . '</span>';
+ } else {
+ return "";
+ }
+}
+
sub git_read_refs {
my $ref_dir = shift;
my @reflist;
@@ -1151,10 +1163,7 @@ sub git_summary {
}
$alternate ^= 1;
if ($i-- > 0) {
- my $ref = "";
- if (defined $refs->{$commit}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$commit}) . "</span>";
- }
+ my $ref = git_get_referencing($refs, $commit);
print "<td><i>$co{'age_string'}</i></td>\n" .
"<td><i>" . esc_html(chop_str($co{'author_name'}, 10)) . "</i></td>\n" .
"<td>";
@@ -1728,10 +1737,7 @@ sub git_tree {
$/ = "\n";
my $refs = read_info_ref();
- my $ref = "";
- if (defined $refs->{$hash_base}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$hash_base}) . "</span>";
- }
+ my $ref = git_get_referencing($refs, $hash_base);
git_header_html();
my $base_key = "";
my $base = "";
@@ -1912,10 +1918,7 @@ sub git_log {
}
for (my $i = ($page * 100); $i <= $#revlist; $i++) {
my $commit = $revlist[$i];
- my $ref = "";
- if (defined $refs->{$commit}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$commit}) . "</span>";
- }
+ my $ref = git_get_referencing($refs, $commit);
my %co = git_read_commit($commit);
next if !%co;
my %ad = date_str($co{'author_epoch'});
@@ -1979,16 +1982,13 @@ sub git_commit {
$expires = "+1d";
}
my $refs = read_info_ref();
- my $ref = "";
- if (defined $refs->{$co{'id'}}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$co{'id'}}) . "</span>";
- }
- git_header_html(undef, $expires);
+ my $ref = git_get_referencing($refs, $co{'id'});
my $formats_nav = '';
if (defined $file_name && defined $co{'parent'}) {
my $parent = $co{'parent'};
$formats_nav .= $cgi->a({-href => "$my_uri?" . esc_param("p=$project;a=blame;hb=$parent;f=$file_name")}, "blame");
}
+ git_header_html(undef, $expires);
git_page_nav('commit', defined $co{'parent'} ? '' : 'commitdiff',
$hash, $co{'tree'}, $hash,
$formats_nav);
@@ -1996,7 +1996,7 @@ sub git_commit {
if (defined $co{'parent'}) {
git_header_div('commitdiff', esc_html($co{'title'}) . $ref, $hash);
} else {
- git_header_div('tree', esc_html($co{'title'}), $co{'tree'}, $hash);
+ git_header_div('tree', esc_html($co{'title'}) . $ref, $co{'tree'}, $hash);
}
print "<div class=\"title_text\">\n" .
"<table cellspacing=\"0\">\n";
@@ -2206,13 +2206,10 @@ sub git_commitdiff {
$expires = "+1d";
}
my $refs = read_info_ref();
- my $ref = "";
- if (defined $refs->{$co{'id'}}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$co{'id'}}) . "</span>";
- }
- git_header_html(undef, $expires);
+ my $ref = git_get_referencing($refs, $co{'id'});
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);
print "<div class=\"page_body\">\n";
@@ -2364,10 +2361,7 @@ sub git_history {
if (!%co) {
next;
}
- my $ref = "";
- if (defined $refs->{$commit}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$commit}) . "</span>";
- }
+ my $ref = git_get_referencing($refs, $commit);
if ($alternate) {
print "<tr class=\"dark\">\n";
} else {
@@ -2559,10 +2553,7 @@ sub git_shortlog {
my $alternate = 0;
for (my $i = ($page * 100); $i <= $#revlist; $i++) {
my $commit = $revlist[$i];
- my $ref = "";
- if (defined $refs->{$commit}) {
- $ref = " <span class=\"tag\">" . esc_html($refs->{$commit}) . "</span>";
- }
+ my $ref = git_get_referencing($refs, $commit);
my %co = git_read_commit($commit);
my %ad = date_str($co{'author_epoch'});
if ($alternate) {