From: "Jakub Narębski" <jnareb@gmail.com>
To: "Trenton D. Adams" <trenton.d.adams@gmail.com>
Cc: git@vger.kernel.org, Eric Wong <normalperson@yhbt.net>
Subject: Re: git instaweb - share all project files
Date: Sat, 13 Apr 2013 17:21:54 +0200 [thread overview]
Message-ID: <51697812.6020106@gmail.com> (raw)
In-Reply-To: <CAMg8Y2qm9FuuMZh7jsAEyr=joUbsp=5V_zU5U86sW0Y=f2OVBA@mail.gmail.com>
Please do not top-post.
On 11.04.2013, Trenton D. Adams wrote:
> #1 would actually work. Though long term it would be cool to view it
> with all the most recent commit information, kind of like github does.
> You know, showing "updated 4 days ago".
>
> On Wed, Apr 10, 2013 at 11:03 AM, Jakub Narębski <jnareb@gmail.com> wrote:
>> W dniu 07.04.2013 05:02, Trenton D. Adams pisze:
>>
>>> On that first page that shows up, it shows the .git folder. It would
>>> be kind of nice if it shared out both the git repo and the actual
>>> current project files. I frequently have stuff I'd like to see in a
>>> web browser, and even requires one (i.e. Navigating to
>>> file:///home/blah/blah doesn't work; ajax requests for example)
>>
>> There are a few possible solutions, from simplest to most complicated:
>>
>> 1. Configure gitweb ran by git-instaweb to have 'worktree' link in
>> the action bar pointing to 'file:///path/to/repo' (or rather
>> 'file:///path/to/workdir') via 'actions' feature, adding e.g.
>>
>> $feature{'actions'}{'default'} =
>> [('worktree', 'file:///path/to/repo', 'summary')];
>>
>> to gitweb_config.perl / gitweb.conf used by git-instaweb's gitweb.
>>
>> This of course works only for local use, so either git-instaweb
>> or gitweb (in config) should check that we use it locally
>> (e.g. if hostname is 'localhost' or equivalent).
[...]
Unfortunately it turns out such simple solution doesn't really work.
First, for some reason Firefox 20.0 refuses to follow file:/// link,
even though it shows correctly worktree if copy'n'pasted as URL in new
window / new tab.
Second, it would work only for the top git repository. There can be
repositories being submodules, or in untracked subdirectories (like
e.g. 't/trash directory.tNNNN*/.git' in git/.git), and said 'worktree'
link would always lead to top git repository workdir.
But anyway, here you have it:
-- >8 --
Subject: [PATCH] git-instaweb: Show project files... kind of (WIP)
On first page that git-instaweb shows, it shows the .git folder. It
would be kind of nice if it shared out both the git repo and the
actual current project files (i.e. current worktree). [...]
[...]
This commit implements solution 1.), with git-instaweb enabling it
only for local use, which means when it is run with `--local` option.
Signed-off-by: Jakub Narebski <jnareb@gmail.com>
---
git-instaweb.sh | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/git-instaweb.sh b/git-instaweb.sh
index 01a1b05..43ae255 100755
--- a/git-instaweb.sh
+++ b/git-instaweb.sh
@@ -22,6 +22,13 @@ restart restart the web server
. git-sh-setup
fqgitdir="$GIT_DIR"
+if test x"$(git rev-parse --is-bare-repository)" = xfalse
+then
+ fqworktree="$(git rev-parse --show-toplevel)"
+else
+ fqworktree=""
+fi
+
local="$(git config --bool --get instaweb.local)"
httpd="$(git config --get instaweb.httpd)"
root="$(git config --get instaweb.gitwebdir)"
@@ -588,6 +595,13 @@ our \$projects_list = \$projectroot;
\$feature{'remote_heads'}{'default'} = [1];
EOF
+ test x"$fqworktree" != x &&
+ test x"$local" = xtrue &&
+ cat >>"$fqgitdir/gitweb/gitweb_config.perl" <<EOF
+\$feature{'actions'}{'default'} = [
+ ('worktree', 'file://$fqworktree', 'summary')
+];
+EOF
}
configure_httpd() {
--
1.8.2.1.367.geafc030.dirty
next prev parent reply other threads:[~2013-04-13 15:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-04-07 3:02 git instaweb - share all project files Trenton D. Adams
2013-04-10 17:03 ` Jakub Narębski
2013-04-10 22:42 ` Trenton D. Adams
2013-04-13 15:21 ` Jakub Narębski [this message]
2013-04-13 20:02 ` Eric Wong
2013-04-14 10:35 ` Jakub Narębski
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=51697812.6020106@gmail.com \
--to=jnareb@gmail.com \
--cc=git@vger.kernel.org \
--cc=normalperson@yhbt.net \
--cc=trenton.d.adams@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.