]> Lady’s Gitweb - Gitweb/log
Gitweb
31 hours agogitweb: Refactor feed generation, make output prettier, add Atom feed
Jakub Narebski [Sun, 19 Nov 2006 14:05:22 +0000 (15:05 +0100)]
gitweb: Refactor feed generation, make output prettier, add Atom feed

Add support for more modern Atom web feed format. Both RSS and Atom
feeds are generated by git_feed subroutine to avoid code duplication;
git_rss and git_atom are thin wrappers around git_feed. Add links to
Atom feed in HTML header and in page footer (but not in OPML; we
should use APP, Atom Publishing Proptocol instead).

Allow for feed generation for branches other than current (HEAD)
branch, and for generation of feeds for file or directory history.

Do not use "pre ${\sub_returning_scalar(...)} post" trick, but join
strings instead: "pre " . sub_returning_scalar(...) . " post".
Use href(-full=>1, ...) instead of hand-crafting gitweb urls.

Make output prettier:
* Use title similar to the title of web page
* Use project description (if exists) for description/subtitle
* Do not add anything (committer name, commit date) to feed entry title
* Wrap the commit message in <pre>
* Make file names into an unordered list
* Add links (diff, conditional blame, history) to the file list.

In addition to the above points, the attached patch emits a
Last-Changed: HTTP response header field, and doesn't compute the feed
body if the HTTP request type was HEAD. This helps keep the web server
load down for well-behaved feed readers that check if the feed needs
updating.

If browser (feed reader) sent Accept: header, and it prefers 'text/xml' type
to 'application/rss+xml' (in the case of RSS feed) or 'application/atom+xml'
(in the case of Atom feed), then use 'text/xml' as content type.

Both RSS and Atom feeds validate at http://feedvalidator.org
and at http://validator.w3.org/feed/

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Andreas Fuchs <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add an option to href() to return full URL
Jakub Narebski [Sun, 19 Nov 2006 14:05:21 +0000 (15:05 +0100)]
gitweb: Add an option to href() to return full URL

href subroutine by default generates absolute URL (generated using
CGI::url(-absolute=>1), and saved in $my_uri) using $my_uri as base;
add an option to generate full URL using $my_url as base.

New feature usage: href(..., -full=>1)

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: New improved formatting of chunk header in diff
Jakub Narebski [Sat, 18 Nov 2006 22:35:40 +0000 (23:35 +0100)]
gitweb: New improved formatting of chunk header in diff

If we have provided enough info, and diff is not combined diff,
and if provided diff line is chunk header, then:
* split chunk header into .chunk_info and .section span elements,
  first containing proper chunk header, second section heading
  (aka. which function), for separate styling: the proper chunk
  header is on non-white background, section heading part uses
  slightly lighter color.
* hyperlink from-file-range to starting line of from-file, if file
  was not created.
* hyperlink to-file-range to starting line of to-file, if file
  was not deleted.
Links are of invisible variety (and "list" class).

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Default to $hash_base or HEAD for $hash in "commit" and "commitdiff"
Jakub Narebski [Sat, 18 Nov 2006 22:35:41 +0000 (23:35 +0100)]
gitweb: Default to $hash_base or HEAD for $hash in "commit" and "commitdiff"

Set $hash parameter to $hash_base || "HEAD" if it is not set (if it is
not true to be more exact). This allows [hand-edited] URLs with 'action'
"commit" or "commitdiff" but without 'hash' parameter.

If there is 'h' (hash) parameter provided, then gitweb tries
to use this. HEAD is used _only_ if nether hash, nor hash_base
are provided, i.e. for URL like below
  URL?p=project.git;a=commit
i.e. without neither 'h' nor 'hb'.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Buffer diff header to deal with split patches + git_patchset_body refactoring
Jakub Narebski [Sat, 18 Nov 2006 22:35:39 +0000 (23:35 +0100)]
gitweb: Buffer diff header to deal with split patches + git_patchset_body refactoring

There are some cases when one line from "raw" git-diff output (raw format)
corresponds to more than one patch in the patchset git-diff output. To deal
with this buffer git diff header and extended diff header (everything up to
actual patch) to check from information from "index <hash>..<hash>" extended
header line if the patch corresponds to the same or next difftree raw line.

This could also be used to gather information needed for hyperlinking, and
used for printing gitweb quoted filenames, from extended diff header instead
of raw git-diff output.

While at it, refactor git_patchset_body subroutine from the event-driven,
AWK-like state-machine parsing to sequential parsing: for each patch
parse (and output) git diff header, parse extended diff header, parse two-line
from-file/to-file diff header, parse patch itself; patch ends with the end
of input [file] or the line matching m/^diff /.

For better understanding the code, there were added assertions in the
comments a la Carp::Assert module. Just in case there is commented out code
dealing with unexpected end of input (should not happen, hence commented
out).

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Protect against possible warning in git_commitdiff
Jakub Narebski [Sat, 18 Nov 2006 22:35:38 +0000 (23:35 +0100)]
gitweb: Protect against possible warning in git_commitdiff

We may read an undef from <$fd> and unconditionally chomping it
would result in a warning.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Put back shortlog instead of graphiclog in the project list.
Alexandre Julliard [Wed, 15 Nov 2006 20:37:50 +0000 (21:37 +0100)]
gitweb: Put back shortlog instead of graphiclog in the project list.

Looks like a repo.or.cz-specific change slipped in.

Signed-off-by: Alexandre Julliard <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: fix unmatched div in commitdiff
Junio C Hamano [Thu, 9 Nov 2006 10:33:35 +0000 (02:33 -0800)]
gitweb: fix unmatched div in commitdiff

When the last filepair changed only metainfo we failed to close the
extended header <div>.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: protect commit messages from controls.
Junio C Hamano [Thu, 9 Nov 2006 08:57:13 +0000 (00:57 -0800)]
gitweb: protect commit messages from controls.

The same change as the previous.  It is rather sad that commit log
message parser gives list of chomped lines while tag message parser
gives unchomped ones.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: protect blob and diff output lines from controls.
Junio C Hamano [Wed, 8 Nov 2006 23:11:10 +0000 (15:11 -0800)]
gitweb: protect blob and diff output lines from controls.

This revealed that the output from blame and tag was not chomped
properly and was relying on HTML output not noticing that extra
whitespace that resulted from the newline, which was also fixed.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: do not give blame link unconditionally in diff-tree view
Junio C Hamano [Wed, 8 Nov 2006 20:22:04 +0000 (12:22 -0800)]
gitweb: do not give blame link unconditionally in diff-tree view

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: New improved patchset view
Jakub Narebski [Wed, 8 Nov 2006 16:59:41 +0000 (17:59 +0100)]
gitweb: New improved patchset view

Replace "gitweb diff header" with its full sha1 of blobs and replace
it by "git diff" header and extended diff header. Change also somewhat
highlighting of diffs.

Added `file_type_long' subroutine to convert file mode in octal to
file type description (only for file modes which used by git).

Changes:
* "gitweb diff header" which looked for example like below:
    file:_<sha1 before>_ -> file:_<sha1 after>_
  where 'file' is file type and '<sha1>' is full sha1 of blob is
  changed to
    diff --git _a/<file before>_ _b/<file after>_
  In both cases links are visible and use default link style. If file
  is added, a/<file> is not hyperlinked. If file is deleted, b/<file>
  is not hyperlinked.
* there is added "extended diff header", with <path> and <hash>
  hyperlinked (and <hash> shortened to 7 characters), and <mode>
  explained: '<mode>' is extended to '<mode> (<file type description>)',
  where added text is slightly lighter to easy distinguish that it
  was added (and it is difference from git-diff output).
* from-file/to-file two-line header lines have slightly darker color
  than removed/added lines.
* chunk header has now delicate line above for easier finding chunk
  boundary, and top margin of 2px, both barely visible.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Use character or octal escape codes (and add span.cntrl) in esc_path
Jakub Narebski [Wed, 8 Nov 2006 10:50:07 +0000 (11:50 +0100)]
gitweb: Use character or octal escape codes (and add span.cntrl) in esc_path

Instead of simply hiding control characters in esc_path by replacing
them with '?', use Character Escape Codes (CEC) i.e. alphabetic
backslash sequences like those found in C programming language and
many other languages influenced by it, such as Java and Perl.  If
control characted doesn't have corresponding character escape code,
use octal char sequence to escape it.

Alternatively, controls can be replaced with Unicode Control
Pictures U+2400 - U+243F (9216 - 9279), the Unicode characters
reserved for representing control characters when it is
necessary to print or display them.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Better git-unquoting and gitweb-quoting of pathnames
Jakub Narebski [Wed, 8 Nov 2006 10:48:56 +0000 (11:48 +0100)]
gitweb: Better git-unquoting and gitweb-quoting of pathnames

Extend unquote subroutine, which unquotes quoted and escaped filenames
which git may return, to deal not only with octal char sequence
quoting, but also quoting ordinary characters including '\"' and '\\'
which are respectively quoted '"' and '\', and to deal also with
C escape sequences including '\t' for TAB and '\n' for LF.

Add esc_path subroutine for gitweb quoting and HTML escaping filenames
(currently it does equivalent of ls' --hide-control-chars, which means
showing undisplayable characters (including '\n' and '\t') as '?'
(question mark) character, and use 'span' element with cntrl CSS class
to help rendering them differently.

Convert gitweb to use esc_path correctly to print pathnames.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: minimally fix "fork" support.
Junio C Hamano [Wed, 8 Nov 2006 06:37:17 +0000 (22:37 -0800)]
gitweb: minimally fix "fork" support.

A forked project is defined to be $projname/$forkname.git for
$projname.git; the code did not check this correctly and mistook
$projname/.git to be a fork of itself.  This minimally fixes the
breakage.

Also forks were not checked when index.aux file was in use.
Listing the forked ones in index.aux would show them also on the
toplevel index which may go against the hierarchical nature of
forks, but again this is a minimal fix to whip it in a better
shape suitable to be in the 'master' branch.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: fix disabling of "forks"
Junio C Hamano [Wed, 8 Nov 2006 06:00:45 +0000 (22:00 -0800)]
gitweb: fix disabling of "forks"

Apparently this code was never tested without "forks".  check-feature
returns a one-element list (0) when disabled, and assigning that to a
scalar variable made it to be called in a scalar context, which meant
my $check_forks = gitweb_check_feature("forks") were always 1!

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Remove extra "/" in path names for git_get_project_list
Aneesh Kumar K.V [Fri, 3 Nov 2006 05:11:45 +0000 (10:41 +0530)]
gitweb: Remove extra "/" in path names for git_get_project_list

Without this change we get a wrong $pfxlen value and the check_export_ok()
checks with with a wrong directory name. Without this patch the below
$projects_list fails with gitweb

$projects_list = "/tmp/a/b/";

Signed-off-by: Aneesh Kumar K.V <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Better support for non-CSS aware web browsers
Jakub Narebski [Wed, 1 Nov 2006 13:33:21 +0000 (14:33 +0100)]
gitweb: Better support for non-CSS aware web browsers

Add option to replace SPC (' ') with hard (non-breakable) space HTML
entity '&nbsp;' in esc_html subroutine.

Replace ' ' with '&nbsp;' for the code/diff display part in git_blob
and git_patchset_body; this is to be able to view code and diffs in
web browsers which doesn't understand "white-space: pre;" CSS
declaration.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Output also empty patches in "commitdiff" view
Jakub Narebski [Tue, 31 Oct 2006 16:36:27 +0000 (17:36 +0100)]
gitweb: Output also empty patches in "commitdiff" view

Remove skipping over empty patches (i.e. patches which consist solely
of extended headers) in git_patchset_body, and add links to those
header-only patches in git_difftree_body (but not generate blobdiff
links when there were no change in file contents).

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Use git-for-each-ref to generate list of heads and/or tags
Jakub Narebski [Thu, 2 Nov 2006 19:23:11 +0000 (20:23 +0100)]
gitweb: Use git-for-each-ref to generate list of heads and/or tags

Add two subroutines: git_get_heads_list and git_get_refs_list, which
fill out needed parts of refs info (heads and tags respectively) info
using single call to git-for-each-ref, instead of using
git-peek-remote to get list of references and using parse_ref for each
ref to get ref info, which in turn uses at least one call of git
command.

Replace call to git_get_refs_list in git_summary by call to
git_get_references, git_get_heads_list and git_get_tags_list
(simplifying this subroutine a bit). Use git_get_heads_list in
git_heads and git_get_tags_list in git_tags. Modify git_tags_body
slightly to accept output from git_get_tags_list.

Remove no longer used, and a bit hackish, git_get_refs_list.
parse_ref is no longer used, but is left for now.

Generating "summary" and "tags" views should be much faster for
projects which have large number of tags.

CHANGES IN OUTPUT: Before, if ref in refs/tags was tag pointing to
commit we used committer epoch as epoch for ref, and used tagger epoch
as epoch only for tag pointing to object of other type. If ref in
refs/tags was commit, we used committer epoch as epoch for ref (see
parse_ref; we sorted in gitweb by 'epoch' field).

Currently we use committer epoch for refs pointing to commit objects,
and tagger epoch for refs pointing to tag object, even if tag points
to commit.

Simple ab benchmark before and after this patch for my git.git
repository (git/jnareb-git.git) with some heads and tags added
as compared to git.git repository, shows around 2.4-3.0 times speedup
for "summary" and "tags" views:

 summary   3134 +/- 24.2 ms  -->   1081 +/- 30.2 ms
 tags      2886 +/- 18.9 ms  -->   1196 +/- 15.6 ms

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Use 's' regexp modifier to secure against filenames with LF
Jakub Narebski [Mon, 30 Oct 2006 21:25:11 +0000 (22:25 +0100)]
gitweb: Use 's' regexp modifier to secure against filenames with LF

Use 's' (treat string as single line) regexp modifier in
git_get_hash_by_path (against future changes, probably unnecessary)
and in parse_ls_tree_line (when called with '-z'=>1 option) to secure
against filenames containing newline.

[jc: the hunk on git_get_hash_by_path was unneeded, and I noticed the
 regexp was doing unnecessary capture, so fixed it up while I was at it.]

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Secure against commit-ish/tree-ish with the same name as path
Jakub Narebski [Mon, 30 Oct 2006 21:29:06 +0000 (22:29 +0100)]
gitweb: Secure against commit-ish/tree-ish with the same name as path

Add "--" after <commit-ish> or <tree-ish> argument to clearly mark it
as <commit-ish> or <tree-ish> and not pathspec, securing against refs
with the same names as files or directories in [live] repository.

Some wrapping to reduce line length as well.

[jc: with "oops, ls-tree does not want --" fix-up manually applied.]

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: esc_html() author in blame
Luben Tuikov [Mon, 30 Oct 2006 20:37:54 +0000 (12:37 -0800)]
gitweb: esc_html() author in blame

Blame fails for example on
block/ll_rw_blk.c at v2.6.19-rc3.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add "next" link to commitdiff view
Jakub Narebski [Sun, 22 Oct 2006 22:37:56 +0000 (00:37 +0200)]
gitweb: Add "next" link to commitdiff view

Add a kind of "next" view in the bottom part of navigation bar for
"commitdiff" view.

For commitdiff between two commits:
  (from: _commit_)
For commitdiff for one single parent commit:
  (parent: _commit_)
For commitdiff for one merge commit
  (merge: _commit_ _commit_ ...)
For commitdiff for root (parentless) commit
  (initial)
where _link_ denotes hyperlink. SHA1 is shortened to 7 characters on
display, everything is perhaps unnecessary esc_html on display.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Move git_get_last_activity subroutine earlier
Jakub Narebski [Sat, 28 Oct 2006 17:43:40 +0000 (19:43 +0200)]
gitweb: Move git_get_last_activity subroutine earlier

This is purely cosmetic.  Having git_get_* between two parse_* subroutines
violated a good convention to group related things together.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Fix up bogus $stylesheet declarations
Petr Baudis [Thu, 26 Oct 2006 12:41:25 +0000 (14:41 +0200)]
gitweb: Fix up bogus $stylesheet declarations

This seems to be a pre-++ residual declaration and it wasn't good for
anything at all besides flooding the webserver errorlog with "omg, our in
the same scope!!" warnings.

[jc: the patch was bogus by defining the variable which defeated a
 later test that checked it with "defined", which I fixed up.]

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Check git base URLs before generating URL from it
Jakub Narebski [Thu, 26 Oct 2006 10:26:44 +0000 (12:26 +0200)]
gitweb: Check git base URLs before generating URL from it

Check if each of git base URLs in @git_base_url_list is true before
appending "/$project" to it to generate project URL.

This fixes the error that for default configuration for gitweb in
Makefile, with GITWEB_BASE_URL empty (and "++GITWEB_BASE_URL++" being
"" in gitweb.cgi), we had URL of "/$project" in the summary view.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Use --no-commit-id in git_commit and git_commitdiff
Jakub Narebski [Thu, 26 Oct 2006 08:50:20 +0000 (10:50 +0200)]
gitweb: Use --no-commit-id in git_commit and git_commitdiff

Use --no-commit-id option to git-diff-tree command in git_commit and
git_commitdiff to filter out commit ID output that git-diff-tree adds
when called with only one <tree-ish> (not only for --stdin). Remove
filtering commit IDs from git-diff-tree output.

This option is in git since at least v1.0.0, so make use of it.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Support for 'forks'
Petr Baudis [Tue, 24 Oct 2006 03:33:17 +0000 (05:33 +0200)]
gitweb: Support for 'forks'

On repo.or.cz, I want to support project 'forks', which are meant
for repositories which are spinoffs of a given project and share
its objects database through the alternates mechanism. But another
(and perhaps even greater) incentive for that is that those 'forked
projects' do not clutter the main project index but are completely
grouped inside of the project view.

A forked project is just like a normal project, but given project
$projectroot/$projname.git, the forked project resides in directory
$projectroot/$projname/$forkname.git. This is a somewhat arbitrary
naming rule, but I think that for now it's fine; if someone will need
something wildly different, let them submit a patch. The 'forked'
mode is by default off and can be turned on in runtime gitweb
configuration just like other features.

A project having forks is marked by a '+' (pointing to the list of
forks) in the project list (this could become some cutesy AJAXy
DHTML in the future), there is a forks section in the project
summary similar to the heads and tags sections, and of course
a forks view which looks the same as the root project list.

Forks can be recursive.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Print commit message without title in commitdiff only if there is any
Jakub Narebski [Tue, 24 Oct 2006 11:55:33 +0000 (13:55 +0200)]
gitweb: Print commit message without title in commitdiff only if there is any

Print the rest of commit message (title, i.e. first line of commit
message, is printed separately) only if there is any.

In repository which uses signoffs this shouldn't happen, because
commit message should consist of at least title and signoff.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Filter out commit ID from @difftree in git_commit and git_commitdiff
Jakub Narebski [Tue, 24 Oct 2006 11:54:49 +0000 (13:54 +0200)]
gitweb: Filter out commit ID from @difftree in git_commit and git_commitdiff

Filter out commit ID output that git-diff-tree adds when called with
only one <tree-ish> (not only for --stdin) in git_commit and
git_commitdiff.

This also works with older git versions, which doesn't have
--no-commit-id option to git-diff-tree.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Get rid of git_print_simplified_log
Jakub Narebski [Tue, 24 Oct 2006 11:52:46 +0000 (13:52 +0200)]
gitweb: Get rid of git_print_simplified_log

Replace calls to git_print_simplified_log with its expansion,
i.e. with calling git_print_log with appropriate options.

Remove no longer used git_print_simplified_log subroutine.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Show project's README.html if available
Petr Baudis [Tue, 24 Oct 2006 03:23:46 +0000 (05:23 +0200)]
gitweb: Show project's README.html if available

If the repository includes a README.html file, show it in the summary page.
The usual "this should be in the config file" argument does not apply here
since this can be larger and having such a big string in the config file
would be impractical.

I don't know if this is suitable upstream, but it's one of the repo.or.cz
custom modifications that I've thought could be interesting for others
as well.

Compared to the previous patch, this adds the '.html' extension to the
filename, so that it's clear it is, well, HTML.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Do not automatically append " git" to custom site name
Petr Baudis [Tue, 24 Oct 2006 03:18:39 +0000 (05:18 +0200)]
gitweb: Do not automatically append " git" to custom site name

If you customized the site name, you probably do not want the " git"
appended so that the page title is not bastardized; I want repo.or.cz pages
titled "Public Git Hosting", not "Public Git Hosting git" (what's hosting
what?).

This slightly changes the $site_name semantics but only very
insignificantly.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Make search type a popup menu
Petr Baudis [Tue, 24 Oct 2006 03:15:46 +0000 (05:15 +0200)]
gitweb: Make search type a popup menu

This makes the multiple search types actually usable by the user;
if you don't read the gitweb source, you don't even have an idea
that you can write things like that there.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Restore object-named links in item lists
Petr Baudis [Tue, 24 Oct 2006 03:36:10 +0000 (05:36 +0200)]
gitweb: Restore object-named links in item lists

This restores the redundant links removed earlier. It supersedes my patch
to stick slashes to tree entries.

Sorry about the previous version of the patch, an unrelated snapshot link
addition to tree entries slipped through (and it it didn't even compile);
I've dropped the idea of snapshot links in tree entries in the meantime
anyway.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Fix setting $/ in parse_commit()
Petr Baudis [Tue, 24 Oct 2006 00:39:14 +0000 (02:39 +0200)]
gitweb: Fix setting $/ in parse_commit()

If the commit couldn't have been read, $/ wasn't restored to \n properly,
causing random havoc like git_get_ref_list() returning the ref names with
trailing \n.

Aside of potential confusion in the body of git_search(), no other $/
surprises are hopefully hidden in the code.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add '..' (up directory) to tree view if applicable
Jakub Narebski [Sat, 21 Oct 2006 15:54:44 +0000 (17:54 +0200)]
gitweb: Add '..' (up directory) to tree view if applicable

Adds '..' (up directory) link at the top of "tree" view listing,
if both $hash_base and $file_name are provided, and $file_name
is not empty string.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Improve git_print_page_path
Jakub Narebski [Sat, 21 Oct 2006 15:53:55 +0000 (17:53 +0200)]
gitweb: Improve git_print_page_path

Add link to "tree root" (root directory) also for not defined name,
for example for "tree" action without defined "file_name" which means
"tree root".

Add " / " at the end of path when $type eq "tree".

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Do not esc_html $basedir argument to git_print_tree_entry
Jakub Narebski [Sat, 21 Oct 2006 15:53:09 +0000 (17:53 +0200)]
gitweb: Do not esc_html $basedir argument to git_print_tree_entry

In git_tree, rename $base variable (which is passed as $basedir
argument to git_print_tree_entry) to $basedir. Do not esc_html
$basedir, as it is part of file_name ('f') argument in link and not
printed. Add '/' at the end only if $basedir is not empty (it is empty
for top directory) and doesn't end in '/' already.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Whitespace cleanup - tabs are for indent, spaces are for align (2)
Jakub Narebski [Sat, 21 Oct 2006 15:52:19 +0000 (17:52 +0200)]
gitweb: Whitespace cleanup - tabs are for indent, spaces are for align (2)

Code should be aligned the same way, regardless of tab size.
Use tabs for indent, but spaces for align.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: use for-each-ref to show the latest activity across branches
Junio C Hamano [Sun, 15 Oct 2006 10:29:09 +0000 (03:29 -0700)]
gitweb: use for-each-ref to show the latest activity across branches

The project list page shows last change from the HEAD branch but
often people would want to view activity on any branch.

Unfortunately that is fairly expensive without the core-side
support.  for-each-ref was invented exactly for that.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: spell "blame --porcelain" with -p
Junio C Hamano [Thu, 12 Oct 2006 07:47:03 +0000 (00:47 -0700)]
gitweb: spell "blame --porcelain" with -p

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Fix search form when PATH_INFO is enabled
Petr Baudis [Wed, 11 Oct 2006 20:31:15 +0000 (22:31 +0200)]
gitweb: Fix search form when PATH_INFO is enabled

Currently that was broken. Ideal fix would make the search form use
PATH_INFO too, but it's just one insignificant place so it's no big deal if
we don't for now... This at least makes it work.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: blame porcelain: lineno and orig lineno swapped
Luben Tuikov [Wed, 11 Oct 2006 07:30:05 +0000 (00:30 -0700)]
gitweb: blame porcelain: lineno and orig lineno swapped

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Cleanup Git logo and Git logo target generation
Jakub Narebski [Fri, 6 Oct 2006 10:31:05 +0000 (12:31 +0200)]
gitweb: Cleanup Git logo and Git logo target generation

Rename $githelp_url and $githelp_label to $logo_url and $logo_label to
be more obvious what they refer to; while at it add commented out
previous contents (git documentation at kernel.org). Add comment about
logo size.

Use $cgi->a(...) to generate Git logo link; it automatically escapes
attribute values when it is needed.  Escape href attribute using
esc_url instead of (incorrect!) esc_html.

Move styling of git logo <img> element from "style" attribute to CSS
via setting class to "logo".  Perhaps we should set it by id rather
than by class.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Document features better
Petr Baudis [Sat, 7 Oct 2006 13:17:47 +0000 (15:17 +0200)]
gitweb: Document features better

This expands gitweb/README to talk some more about GITWEB_CONFIG, moves
feature-specific documentation in gitweb.cgi to the inside of the %features
array, and adds some short description of all the features.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: [commit view] Do not suppress commitdiff link in root commit
Petr Baudis [Fri, 6 Oct 2006 16:59:33 +0000 (18:59 +0200)]
gitweb: [commit view] Do not suppress commitdiff link in root commit

There's no reason for that, the commitdiff view is meaningful for the
root commit as well and we link to it everywhere else.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Handle commits with empty commit messages more reasonably
Petr Baudis [Fri, 6 Oct 2006 16:55:04 +0000 (18:55 +0200)]
gitweb: Handle commits with empty commit messages more reasonably

Currently those look very weird, you can't get easily at the commit view
etc. This patch makes their title '(no commit message)'.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Separate (new) and (deleted) in commitdiff by a space
Petr Baudis [Fri, 6 Oct 2006 16:00:17 +0000 (18:00 +0200)]
gitweb: Separate (new) and (deleted) in commitdiff by a space

Currently it's pasted to the sha1 of the blob and looks ugly.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agoShow snapshot link in shortlog only if have_snapsho
Petr Baudis [Fri, 6 Oct 2006 13:57:52 +0000 (15:57 +0200)]
Show snapshot link in shortlog only if have_snapsho

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: refactor decode() for utf8 conversion
Yasushi SHOJI [Sun, 1 Oct 2006 21:21:33 +0000 (06:21 +0900)]
gitweb: refactor decode() for utf8 conversion

we already had a few place using decode() to convert perl internal
encode to utf8.  added a new thin wrapper to do just that.

Signed-off-by: Yasushi SHOJI <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: use blame --porcelain
Junio C Hamano [Thu, 5 Oct 2006 20:55:58 +0000 (13:55 -0700)]
gitweb: use blame --porcelain

This makes gitweb (git_blame2) use "blame --porcelain", which
lets the caller to figure out which line in the original version
each line comes from.  Using this information, change the
behaviour of clicking the line number to go to the line of the
blame output for the original commit.

Before, clicking the line number meant "scoll up to show this
line at the beginning of the page", which was not all that
useful.  The new behaviour lets you click on the line you are
interested in to view the line in the context it was introduced,
and keep digging deeper as you examine it.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Make the Git logo link target to point to the homepage
Junio C Hamano [Sat, 23 Sep 2006 19:36:01 +0000 (12:36 -0700)]
gitweb: Make the Git logo link target to point to the homepage

It provides more useful information for causual Git users than the Git docs
(especially about where to get Git and such).

People can override with GITWEB_CONFIG if they want to.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
Acked-by: Petr Baudis <redacted>
31 hours agogitweb: blame: Minimize vertical table row padding
Luben Tuikov [Thu, 5 Oct 2006 20:30:31 +0000 (13:30 -0700)]
gitweb: blame: Minimize vertical table row padding

Minimize vertical table row padding for blame only.  I
discovered this while having the browser's blame output
right next to my editor's window, only to notice how much
vertically stretched the blame output was.

Blame most likely shows source code and is in this way
more "spartan" than the rest of the tables gitweb shows.

This patch makes the blame table more vertically compact,
thus being closer to what you'd see in your editor's window,
as well as reusing more window estate to show more
information (which in turn minimizes scrolling).

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Do not print "log" and "shortlog" redundantly in commit view
Luben Tuikov [Thu, 5 Oct 2006 19:22:57 +0000 (12:22 -0700)]
gitweb: Do not print "log" and "shortlog" redundantly in commit view

Do not print "log" and "shortlog" redundantly in commit
view.  This is passed into the $extra argument of
git_print_page_nav from git_commit, but git_print_page_nav
prints "log" and "shortlog" already with the same head.

Noticed by Junio.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agotar-tree deprecation: we eat our own dog food.
Junio C Hamano [Thu, 5 Oct 2006 09:26:12 +0000 (02:26 -0700)]
tar-tree deprecation: we eat our own dog food.

It is silly to keep using git-tar-tree in dist target when the
command gives a big deprecation warning when called.  Instead,
use "git-archive --format=tar" which we recommend to our users.

Update gitweb's snapshot feature to use git-archive for the same
reason.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: warn if feature cannot be overridden.
Martin Waitz [Tue, 3 Oct 2006 18:07:43 +0000 (20:07 +0200)]
gitweb: warn if feature cannot be overridden.

If the administrator configures pathinfo to be overrideable by the
local repository a warning is shown.

Signed-off-by: Martin Waitz <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agoGitweb - provide site headers and footers
Alan Chandler [Tue, 3 Oct 2006 12:49:03 +0000 (13:49 +0100)]
Gitweb - provide site headers and footers

This allows web sites with a header and footer standard for each page
to add them to the pages produced by gitweb.

Two new variables $site_header and $site_footer are defined (default
to null) each of which can specify a file containing the header and
footer html.

In addition, if the $stylesheet variable is undefined, a new array
@stylesheets (which defaults to a single element of gitweb.css) can be
used to specify more than one style sheet.  This allows the clasical
gitweb.css styles to be retained, but a site wide style sheet used
within the header and footer areas.

Signed-off-by: Alan Chandler <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: blame: Mouse-over commit-8 shows author and date
Luben Tuikov [Wed, 4 Oct 2006 07:13:38 +0000 (00:13 -0700)]
gitweb: blame: Mouse-over commit-8 shows author and date

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: blame: print commit-8 on the leading row of a commit-block
Luben Tuikov [Wed, 4 Oct 2006 07:12:17 +0000 (00:12 -0700)]
gitweb: blame: print commit-8 on the leading row of a commit-block

Print commit-8 only on the first, leading row of
a commit block, to complement the per-commit block coloring.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agoRevert 954a6183756a073723a7c9fd8d2feb13132876b0
Junio C Hamano [Wed, 4 Oct 2006 21:54:32 +0000 (14:54 -0700)]
Revert 954a6183756a073723a7c9fd8d2feb13132876b0

Luben makes a good argument against it, and I agree with him in general.
The clickable handle that appear at seemingly random places makes them
look as if they are separating groups when it is not.

This also restores the executable bit I lost by mistake.

Signed-off-by: Junio C Hamano <redacted>
31 hours agoUpdate the gitweb/README file to include setting the GITWEB_CONFIG environment
Alan Chandler [Tue, 3 Oct 2006 21:48:46 +0000 (22:48 +0100)]
Update the gitweb/README file to include setting the GITWEB_CONFIG environment

Signed-off-by: Alan Chandler <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: prepare for repositories with packed refs.
Junio C Hamano [Tue, 3 Oct 2006 09:30:47 +0000 (02:30 -0700)]
gitweb: prepare for repositories with packed refs.

When a repository is initialized long time ago with symbolic
HEAD, and "git-pack-refs --prune" is run, HEAD will be a
dangling symlink to refs/heads/ somewhere.

Running -e "$dir/HEAD" to guess if $dir is a git repository does
not give us the right answer anymore in such a case.

Also factor out two places that checked if the repository can be
exported with similar code into a call to a new function,
check_export_ok.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: make leftmost column of blame less cluttered.
Junio C Hamano [Sun, 1 Oct 2006 09:16:11 +0000 (02:16 -0700)]
gitweb: make leftmost column of blame less cluttered.

Instead of labelling each and every line with clickable commit
object name, this makes the blame output to show them only on
the first line of each group of lines from the same revision.
Placing too many lines in one group would make the commit object
name to appear too widely separated and also makes it consume
more memory, the number of lines in one group is capped to 20
lines or so.

Also it makes mouse-over to show the minimum authorship and
authordate information for extra cuteness ;-).

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: document webserver configuration for common gitweb/repo URLs.
Martin Waitz [Tue, 3 Oct 2006 08:03:28 +0000 (10:03 +0200)]
gitweb: document webserver configuration for common gitweb/repo URLs.

Add a small apache configuration which shows how to use apache
to put gitweb and GIT repositories at the same URL.

Signed-off-by: Martin Waitz <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Escape ESCAPE (\e) character
Luben Tuikov [Mon, 2 Oct 2006 21:54:53 +0000 (14:54 -0700)]
gitweb: Escape ESCAPE (\e) character

Take a look at commit 20a3847d8a5032ce41f90dcc68abfb36e6fee9b1
using gitweb before this patch.  This patch fixes this.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: start to generate PATH_INFO URLs.
Martin Waitz [Sun, 1 Oct 2006 21:57:48 +0000 (23:57 +0200)]
gitweb: start to generate PATH_INFO URLs.

Instead of providing the project as a ?p= parameter it is simply appended to
the base URI.  All other parameters are appended to that, except for ?a=summary
which is the default and can be omitted.

The this can be enabled with the "pathinfo" feature in gitweb_config.perl.

[jc: let's introduce new features disabled by default not to
 upset too many existing installations.]

Signed-off-by: Martin Waitz <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: tree view: hash_base and hash are now context sensitive
Luben Tuikov [Fri, 29 Sep 2006 16:57:43 +0000 (09:57 -0700)]
gitweb: tree view: hash_base and hash are now context sensitive

In tree view, by default, hash_base is HEAD and hash is the
entry equivalent.  Else the user had selected a hash_base or
hash, say by clicking on a revision or commit, in which case
those values are used.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: History: blob and tree are first, then commitdiff, etc
Luben Tuikov [Fri, 29 Sep 2006 00:21:07 +0000 (17:21 -0700)]
gitweb: History: blob and tree are first, then commitdiff, etc

Reorder link display in history to be consistent with other
list displays: log, shortlog, etc.  We now display:

blob | commitdiff
blob | commitdiff | diff_to_current

and

tree | commitdiff

Instead of the old history format where "blob" and "tree"
are between "commitdiff" and "diff_to_current" if present/
applicable.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Remove redundant "commit" from history
Luben Tuikov [Fri, 29 Sep 2006 00:20:23 +0000 (17:20 -0700)]
gitweb: Remove redundant "commit" from history

Remove redundant "commit" from history -- it can be had
by clicking on the title of the commit.  This commit
makes visualization consistent with shortlog, log, etc.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Don't use quotemeta on internally generated strings
Luben Tuikov [Thu, 28 Sep 2006 23:51:43 +0000 (16:51 -0700)]
gitweb: Don't use quotemeta on internally generated strings

Do not use quotemeta on internally generated strings
such as filenames of snapshot, blobs, etc.
quotemeta quotes any characters not matching /A-Za-z_0-9/.
Which means that we get strings like this:

before: linux\-2\.6\.git\-5c2d97cb31fb77981797fec46230ca005b865799\.tar\.gz
after:  linux-2.6.git-5c2d97cb31fb77981797fec46230ca005b865799.tar.gz

This patch fixes this.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add snapshot to shortlog
Luben Tuikov [Thu, 28 Sep 2006 23:50:09 +0000 (16:50 -0700)]
gitweb: Add snapshot to shortlog

Add snapshot to each commit-row of shortlog.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Factor out gitweb_have_snapshot()
Luben Tuikov [Thu, 28 Sep 2006 23:49:21 +0000 (16:49 -0700)]
gitweb: Factor out gitweb_have_snapshot()

Create gitweb_have_snapshot() which returns true
of snapshot is available and enabled, else false.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Remove redundant "commit" link from shortlog
Luben Tuikov [Thu, 28 Sep 2006 23:48:40 +0000 (16:48 -0700)]
gitweb: Remove redundant "commit" link from shortlog

Remove the redundant "commit" link from shortlog.
It can be had by simply clicking on the entry title
of the row.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: "alternate" starts with shade (i.e. 1)
Luben Tuikov [Thu, 28 Sep 2006 23:47:50 +0000 (16:47 -0700)]
gitweb: "alternate" starts with shade (i.e. 1)

When displaying a list of rows (difftree, shortlog, etc),
the first entry is now printed shaded, i.e. alternate is
initialized to 1, as opposed to non-shaded (alternate
initialized to 0).

This solves the problem when there is only one row to
display -- it is displayed shaded to visually indicate that
it is "active", part of a "list", etc.

(Compare this to the trivial case of more than one entry,
where the rows have alternating shade, thus suggesting
being part of a "list" of "active" entries, etc.)

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add history and blame to git_difftree_body()
Luben Tuikov [Thu, 28 Sep 2006 00:24:49 +0000 (17:24 -0700)]
gitweb: Add history and blame to git_difftree_body()

Add blame and history to Deleted files.
Add blame and history to Modified or Type changed files.
Add blame and history to Renamed or Copied files.

This allows us to do
blame->commit->blame->commit->blame->...
instead of
blame->commit->file->blame->commit->file->blame->...
which is longer and easier to get wrong.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Remove excessively redundant entries from git_difftree_body
Luben Tuikov [Thu, 28 Sep 2006 00:23:25 +0000 (17:23 -0700)]
gitweb: Remove excessively redundant entries from git_difftree_body

1) All entries on the left are blobs and clicking on them
leads to blobs.  No more diff or blob depending on what
happened (modified or mode changed) to the file -- this goes
to the right, in the "link" column.

2) Remove redundant "blob" from the link column on the right.
This can now be had by clicking on the entry itself.

This reduces and simplifies the code.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agoRevert "gitweb: extend blame to show links to diff and previous"
Luben Tuikov [Thu, 28 Sep 2006 00:22:03 +0000 (17:22 -0700)]
Revert "gitweb: extend blame to show links to diff and previous"

This concept is very fine, but it makes blame slow
across renames and across branches, so revert it.
There is a better way to do this.

This reverts commit 03d06a8e26f4fbd37800d1e1125c6ecf4c104466.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Quote filename in HTTP Content-Disposition: header
Jakub Narebski [Mon, 25 Sep 2006 23:59:43 +0000 (01:59 +0200)]
gitweb: Quote filename in HTTP Content-Disposition: header

Finish work started by commit a2f3db2 (although not documented
in commit message) of quoting using quotemeta the filename in
HTTP -content_disposition header.

Just in case filename contains end of line character.

Also use consistent coding style to compute -content_disposition
parameter.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Add git_url subroutine, and use it to quote full URLs
Jakub Narebski [Mon, 25 Sep 2006 23:58:41 +0000 (01:58 +0200)]
gitweb: Add git_url subroutine, and use it to quote full URLs

Add git_url subroutine, which does what git_param did before commit
a2f3db2f5de2a3667b0e038aa65e3e097e642e7d, and is used to quote full
URLs, currently only $home_link.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Split validate_input into validate_pathname and validate_refname
Jakub Narebski [Mon, 25 Sep 2006 23:57:02 +0000 (01:57 +0200)]
gitweb: Split validate_input into validate_pathname and validate_refname

Split validate_input subroutine into validate_pathname which is used
for $project, $file_name and $file_parent parameters, and
validate_refname which is used for $hash, $hash_base, $hash_parent and
$hash_parent_base parameters.  Reintroduce validation of $file_name
and $file_parent parameters, removed in a2f3db2f

validate_pathname in addition to what validate_input did checks also
for doubled slashes and NUL character. It does not check if input is
textual hash, and does not check if all characters are from the
following set: [a-zA-Z0-9_\x80-\xff\ \t\.\/\-\+\#\~\%].

validate_refname first check if the input is textual hash, then checks
if it is valid pathname, then checks for invalid characters (according
to git-check-ref-format manpage). It does not check if all charactes
are from the [a-zA-Z0-9_\x80-\xff\ \t\.\/\-\+\#\~\%] set.

We do not have to validate pathnames we got from git.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Use "return" instead of "return undef" for some subs
Jakub Narebski [Mon, 25 Sep 2006 23:56:17 +0000 (01:56 +0200)]
gitweb: Use "return" instead of "return undef" for some subs

Use "return" instead of "return undef" when subroutine can return, or
always return, non-scalar (list) value.

Other places are left as is.

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Strip trailing slashes from $path in git_get_hash_by_path
Jakub Narebski [Mon, 25 Sep 2006 23:54:24 +0000 (01:54 +0200)]
gitweb: Strip trailing slashes from $path in git_get_hash_by_path

It also removes unused local variable $tree

Signed-off-by: Jakub Narebski <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: extend blame to show links to diff and previous
Luben Tuikov [Tue, 26 Sep 2006 23:45:31 +0000 (16:45 -0700)]
gitweb: extend blame to show links to diff and previous

git_blame2() now has two more columns, "Prev" and "Diff",
before the "Commit" column, as follows:

Prev Diff Commit Line Data
SHA     Diff    SHA        N    ...
...

The "Prev" column shows the SHA of the parent commit,
between which this line changed.  Clicking on it shows the
blame of the file as of the parent commit, for that line.

So clicking repeatedly on "Prev" would show you the blame
of that file, from the point of view of the changes
of that particular line whose "Prev" you're clicking on.

The "Diff" column shows "Diff" which is a link to blobdiff
between "Prev" and "Commit" commits _for that line_.

So clicking on "Diff" would show you the blobdiff (HTML)
between the parent commit and this commit which changed
that particular line.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Decode long title for link tooltips
Yasushi SHOJI [Wed, 27 Sep 2006 03:04:10 +0000 (12:04 +0900)]
gitweb: Decode long title for link tooltips

This is a simple one liner to decode long title string in perl's
internal form to utf-8 for link tooltips.

This is not crucial if the commit message is all in ASCII, however, if
you decide to use other encoding, such as UTF-8, tooltips ain't
readable any more.

Signed-off-by: Yasushi SHOJI <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Remove redundant "tree" link
Luben Tuikov [Tue, 26 Sep 2006 19:45:37 +0000 (12:45 -0700)]
gitweb: Remove redundant "tree" link

In "tree" view, remove redundant "tree" link in the tree
listing.  It is identical to simply clicking on the tree
entry itself.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: tree view: eliminate redundant "blob"
Luben Tuikov [Tue, 26 Sep 2006 05:38:16 +0000 (22:38 -0700)]
gitweb: tree view: eliminate redundant "blob"

Binary and non-binary blobs:

The "list" table element of tree view is identical
to the "blob" link part of the link table element.
I.e. clicking on "blob" is identical to clicking on
the entry itself.

Thus, eliminate "blob" from being shown -- the user
can get identical result by simply clicking on the
entry itself.

Signed-off-by: Luben Tuikov <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: fix over-eager application of esc_html().
Petr Baudis [Sun, 24 Sep 2006 21:57:40 +0000 (14:57 -0700)]
gitweb: fix over-eager application of esc_html().

Contents of %diffinfo hash should be quoted upon output but kept
unquoted internally.  Later users of this hash expect filenames
to be filenames, not HTML gibberish.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Consolidate escaping/validation of query string
Petr Baudis [Sat, 23 Sep 2006 22:18:41 +0000 (00:18 +0200)]
gitweb: Consolidate escaping/validation of query string

Consider:

http://repo.or.cz/?p=glibc-cvs.git;a=tree;h=2609cb0411389325f4ee2854cc7159756eb0671e;hb=2609cb0411389325f4ee2854cc7159756eb0671e

(click on the funny =__ify file)

We ought to handle anything in filenames and I actually see no reason why
we don't, modulo very little missing escaping that this patch hopefully
also fixes.

I have also made esc_param() escape [?=&;]. Not escaping [&;] was downright
buggy and [?=] just feels better escaped. ;-) YMMV.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agoFix snapshot link in tree view
Petr Baudis [Fri, 22 Sep 2006 23:21:20 +0000 (01:21 +0200)]
Fix snapshot link in tree view

It would just give HEAD snapshot instead of one of the particular tree.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Fix @git_base_url_list usage
Petr Baudis [Fri, 22 Sep 2006 23:15:18 +0000 (01:15 +0200)]
gitweb: Fix @git_base_url_list usage

As it is now, that array was never used because the customurl accessor was
broken and ''unless @url_list'' never happenned.

Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Fix tree link associated with each commit log entry.
Petr Baudis [Fri, 22 Sep 2006 23:56:43 +0000 (16:56 -0700)]
gitweb: Fix tree link associated with each commit log entry.

The link forgot to have hb parameter and the resulting tree view
failed to show the navbar for that commit.

Signed-off-by: Junio C Hamano <redacted>
31 hours agoMake path in tree view look nicer
Petr Baudis [Fri, 22 Sep 2006 23:00:12 +0000 (01:00 +0200)]
Make path in tree view look nicer

Based on talk on the IRC with Junio some evenings ago, I've updated the
path showing in tree view to look better and sent updated patches
privately, but it seems the old version ended up being used, so here's
the new one again.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Relabel "head" as "HEAD"
Petr Baudis [Fri, 22 Sep 2006 01:19:53 +0000 (03:19 +0200)]
gitweb: Relabel "head" as "HEAD"

"head" is a reference in refs/heads/, while those labels mean HEAD,
the latest revision of the default branch.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Rename "plain" labels to "raw"
Petr Baudis [Fri, 22 Sep 2006 01:19:50 +0000 (03:19 +0200)]
gitweb: Rename "plain" labels to "raw"

I don't have much preference either way and as far as I'm concerned, it may
go the other way as well. Consistency is what is important.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Link to associated tree from a particular log item in full log view
Petr Baudis [Fri, 22 Sep 2006 01:19:48 +0000 (03:19 +0200)]
gitweb: Link to associated tree from a particular log item in full log view

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Link to latest tree from the head line in heads list
Petr Baudis [Fri, 22 Sep 2006 01:19:46 +0000 (03:19 +0200)]
gitweb: Link to latest tree from the head line in heads list

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: Link to tree instead of snapshot in shortlog
Petr Baudis [Fri, 22 Sep 2006 01:19:44 +0000 (03:19 +0200)]
gitweb: Link to tree instead of snapshot in shortlog

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
31 hours agogitweb: More per-view navigation bar links
Petr Baudis [Fri, 22 Sep 2006 01:19:41 +0000 (03:19 +0200)]
gitweb: More per-view navigation bar links

Navigation bars in various views were empty or missed important items that
should have been there, e.g. getting a snapshot in tree view or log of
ancestry in commit view...

This feeble patch attempts to consolidate that.

Signed-off-by: Petr Baudis <redacted>
Signed-off-by: Junio C Hamano <redacted>
This page took 0.577062 seconds and 4 git commands to generate.