threads / patch / 3481

patchgitweb: Enable tree (directory) history display

Subject: [PATCH] gitweb: Enable tree (directory) history display

## tl;dr

2 messages between Feb 27, 2006 and Feb 27, 2006. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Luben Tuikov· Feb 27, 2006, 18:55 UTC · lore
Hi,

I find this patch very useful, especially when a directory (tree) describes a project.

This patch allows history display of whole trees/directories, a la "git-rev-list HEAD <dir or file>", but somewhat slower, since exported git repository doesn't have the files checked out so we have to use "$gitbin/git-rev-list $hash | $gitbin/git-diff-tree -r --stdin \'$file_name\'" method. Maybe someone can find a speed up for this. And better yet, maybe links can be static as opposed to dynamic, so that you don't have to navigate each and everytime if you want to find the history of the same directory.

Signed-off-by: Luben Tuikov <ltuikov@yahoo.com>
---
 gitweb.cgi |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
5c8ae3db3561238a57201fcb3297f16d7b37f377
Show changes to gitweb.cgi +1 −0
diff --git a/gitweb.cgi b/gitweb.cgi
index c1bb624..452528f 100755
--- a/gitweb.cgi
+++ b/gitweb.cgi
@@ -1504,6 +1504,7 @@ sub git_tree {
                              "</td>\n" .
                              "<td class=\"link\">" .
                              $cgi->a({-href => "$my_uri?" .
esc_param("p=$project;a=tree;h=$t_hash$base_key;f=$base$t_name")}, "tree") .
+                             " | " . $cgi->a({-href => "$my_uri?" .
esc_param("p=$project;a=history;h=$hash_base;f=$base$t_name")}, "history") .
                              "</td>\n";
                }
                print "</tr>\n";
-- 
1.2.3.g6db0
Linus Torvalds· Feb 27, 2006, 19:56 UTC · re: Luben Tuikov · lore

Re: [PATCH] gitweb: Enable tree (directory) history display

On Mon, 27 Feb 2006, Luben Tuikov wrote:
Show 6 quoted lines
> 
> This patch allows history display of whole trees/directories,
> a la "git-rev-list HEAD <dir or file>", but somewhat
> slower, since exported git repository doesn't have
> the files checked out so we have to use
> "$gitbin/git-rev-list $hash | $gitbin/git-diff-tree -r --stdin \'$file_name\'"
No no. 
Just use 
	git-rev-list $hash -- $file_name
where the "--" is the important part.

As a usability-enhancer, you can leave out the "--" to separate filenames and other things, but when you leave out the "--", git requires that the filenames exist.

		Linus

← back to recent threads