* Gitweb: Scan dir for repos & show these other specified repos
@ 2010-03-01 19:15 Mike.lifeguard
2010-03-01 19:55 ` Jakub Narebski
0 siblings, 1 reply; 8+ messages in thread
From: Mike.lifeguard @ 2010-03-01 19:15 UTC (permalink / raw)
To: git
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello,
Is it possible to have gitweb show all repositories in /path/to/wherever
and also show some other repositories at particular locations like
/home/user/git/repo1 and /home/user2/git/repo2 ? Or better yet, scan
multiple dirs? Currently I can only see how to do one or the other
within a single gitweb installation. I suppose I could run two of them...
Thanks for the help.
- -Mike
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (GNU/Linux)
iEYEARECAAYFAkuMEmQACgkQst0AR/DaKHuYiQCeL3EoeUCr676lbwE2PIZK2tk3
7dsAoMpBmKoZZj3LV1zKLVqtIpFIiIii
=YDlg
-----END PGP SIGNATURE-----
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Gitweb: Scan dir for repos & show these other specified repos
2010-03-01 19:15 Gitweb: Scan dir for repos & show these other specified repos Mike.lifeguard
@ 2010-03-01 19:55 ` Jakub Narebski
2010-03-01 21:20 ` Sylvain Rabot
0 siblings, 1 reply; 8+ messages in thread
From: Jakub Narebski @ 2010-03-01 19:55 UTC (permalink / raw)
To: Mike.lifeguard; +Cc: git
"Mike.lifeguard" <mike.lifeguard@gmail.com> writes:
> Is it possible to have gitweb show all repositories in /path/to/wherever
> and also show some other repositories at particular locations like
> /home/user/git/repo1 and /home/user2/git/repo2 ? Or better yet, scan
> multiple dirs? Currently I can only see how to do one or the other
> within a single gitweb installation. I suppose I could run two of them...
It is not possible with $projects_list being directory (or undefined,
which means to take $projectroot), but I think it is possible with
$projects_list being a file.
You would have to set $projectroot to common prefix (it might be
empty, i.e. '' if there is no common prefix), then list there all
repositories, relative to $projectroot. See gitweb/README and
gitweb/INSTALL, and comments in gitweb.perl for details on file
format.
P.S. It probably be a good idea to have something like mod_userdir,
but gitweb currently doesn't support something like that.
P.P.S. Alternate solution would be to try to work around it with
automount / autofs or something like that.
--
Jakub Narebski
Poland
ShadeHawk on #git
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Gitweb: Scan dir for repos & show these other specified repos
2010-03-01 19:55 ` Jakub Narebski
@ 2010-03-01 21:20 ` Sylvain Rabot
2010-03-01 22:18 ` Jakub Narebski
0 siblings, 1 reply; 8+ messages in thread
From: Sylvain Rabot @ 2010-03-01 21:20 UTC (permalink / raw)
To: Jakub Narebski; +Cc: Mike.lifeguard, git
[-- Attachment #1: Type: text/plain, Size: 2121 bytes --]
On Mon, 2010-03-01 at 11:55 -0800, Jakub Narebski wrote:
> "Mike.lifeguard" <mike.lifeguard@gmail.com> writes:
>
> > Is it possible to have gitweb show all repositories in /path/to/wherever
> > and also show some other repositories at particular locations like
> > /home/user/git/repo1 and /home/user2/git/repo2 ? Or better yet, scan
> > multiple dirs? Currently I can only see how to do one or the other
> > within a single gitweb installation. I suppose I could run two of them...
>
> It is not possible with $projects_list being directory (or undefined,
> which means to take $projectroot), but I think it is possible with
> $projects_list being a file.
>
> You would have to set $projectroot to common prefix (it might be
> empty, i.e. '' if there is no common prefix), then list there all
> repositories, relative to $projectroot. See gitweb/README and
> gitweb/INSTALL, and comments in gitweb.perl for details on file
> format.
>
>
> P.S. It probably be a good idea to have something like mod_userdir,
> but gitweb currently doesn't support something like that.
I had the same problematic some times ago. I wanted to have several
project's roots folder for gitweb (one for each unix user of the
server).
You can find the discussion here :
http://thread.gmane.org/gmane.comp.version-control.git/132926/
http://marc.info/?t=125827961600002&r=1&w=2
Here the configuration I used :
/etc/gitweb.conf :
$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/var/gitweb";
/etc/apache2/sites-available/yourvirtualhost :
RewriteEngine on
RewriteRule ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]
RewriteRule ^/\~([^\/]+)/?$ /cgi-bin/gitweb.cgi
[QSA,E=GITWEB_PROJECTROOT:/home/$1/gitweb/,L,PT]
I.E. :
http://yourvirtualhost/ will have /var/gitweb as proeject root
http://yourvirtualhost/~<user>/ will have /home/<users>/gitweb as
proeject root
You can modify the rewrite rule to match what you want to do.
>
> P.P.S. Alternate solution would be to try to work around it with
> automount / autofs or something like that.
--
Sylvain Rabot <sylvain@abstraction.fr>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Gitweb: Scan dir for repos & show these other specified repos
2010-03-01 21:20 ` Sylvain Rabot
@ 2010-03-01 22:18 ` Jakub Narebski
2010-03-01 22:22 ` Sylvain Rabot
2010-03-02 0:04 ` [PATCH] gitweb multiple project roots documentation Sylvain Rabot
0 siblings, 2 replies; 8+ messages in thread
From: Jakub Narebski @ 2010-03-01 22:18 UTC (permalink / raw)
To: Sylvain Rabot; +Cc: Mike.lifeguard, git
On Mon, 1 Mar 2010, Sylvain Rabot wrote:
> On Mon, 2010-03-01 at 11:55 -0800, Jakub Narebski wrote:
> > "Mike.lifeguard" <mike.lifeguard@gmail.com> writes:
> >
> > > Is it possible to have gitweb show all repositories in /path/to/wherever
> > > and also show some other repositories at particular locations like
> > > /home/user/git/repo1 and /home/user2/git/repo2 ? Or better yet, scan
> > > multiple dirs? Currently I can only see how to do one or the other
> > > within a single gitweb installation. I suppose I could run two of them...
> > P.S. It probably be a good idea to have something like mod_userdir,
> > but gitweb currently doesn't support something like that.
>
> I had the same problematic some times ago. I wanted to have several
> project's roots folder for gitweb (one for each unix user of the
> server).
>
> You can find the discussion here :
>
> http://thread.gmane.org/gmane.comp.version-control.git/132926/
> http://marc.info/?t=125827961600002&r=1&w=2
>
> Here the configuration I used :
>
> /etc/gitweb.conf :
>
> $projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/var/gitweb";
>
> /etc/apache2/sites-available/yourvirtualhost :
>
> RewriteEngine on
> RewriteRule ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]
> RewriteRule ^/\~([^\/]+)/?$ /cgi-bin/gitweb.cgi
> [QSA,E=GITWEB_PROJECTROOT:/home/$1/gitweb/,L,PT]
>
> I.E. :
>
> http://yourvirtualhost/ will have /var/gitweb as proeject root
> http://yourvirtualhost/~<user>/ will have /home/<users>/gitweb as
> proeject root
>
> You can modify the rewrite rule to match what you want to do.
Would you mind writing it up and adding it as an example in gitweb/README?
If you don't have time, I can try to do this myself in my free time.
--
Jakub Narebski
Poland
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: Gitweb: Scan dir for repos & show these other specified repos
2010-03-01 22:18 ` Jakub Narebski
@ 2010-03-01 22:22 ` Sylvain Rabot
2010-03-02 0:04 ` [PATCH] gitweb multiple project roots documentation Sylvain Rabot
1 sibling, 0 replies; 8+ messages in thread
From: Sylvain Rabot @ 2010-03-01 22:22 UTC (permalink / raw)
To: git
[-- Attachment #1: Type: text/plain, Size: 2051 bytes --]
On Mon, 2010-03-01 at 23:18 +0100, Jakub Narebski wrote:
> On Mon, 1 Mar 2010, Sylvain Rabot wrote:
> > On Mon, 2010-03-01 at 11:55 -0800, Jakub Narebski wrote:
> > > "Mike.lifeguard" <mike.lifeguard@gmail.com> writes:
> > >
> > > > Is it possible to have gitweb show all repositories in /path/to/wherever
> > > > and also show some other repositories at particular locations like
> > > > /home/user/git/repo1 and /home/user2/git/repo2 ? Or better yet, scan
> > > > multiple dirs? Currently I can only see how to do one or the other
> > > > within a single gitweb installation. I suppose I could run two of them...
>
> > > P.S. It probably be a good idea to have something like mod_userdir,
> > > but gitweb currently doesn't support something like that.
> >
> > I had the same problematic some times ago. I wanted to have several
> > project's roots folder for gitweb (one for each unix user of the
> > server).
> >
> > You can find the discussion here :
> >
> > http://thread.gmane.org/gmane.comp.version-control.git/132926/
> > http://marc.info/?t=125827961600002&r=1&w=2
> >
> > Here the configuration I used :
> >
> > /etc/gitweb.conf :
> >
> > $projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/var/gitweb";
> >
> > /etc/apache2/sites-available/yourvirtualhost :
> >
> > RewriteEngine on
> > RewriteRule ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]
> > RewriteRule ^/\~([^\/]+)/?$ /cgi-bin/gitweb.cgi
> > [QSA,E=GITWEB_PROJECTROOT:/home/$1/gitweb/,L,PT]
> >
> > I.E. :
> >
> > http://yourvirtualhost/ will have /var/gitweb as proeject root
> > http://yourvirtualhost/~<user>/ will have /home/<users>/gitweb as
> > proeject root
> >
> > You can modify the rewrite rule to match what you want to do.
>
> Would you mind writing it up and adding it as an example in gitweb/README?
> If you don't have time, I can try to do this myself in my free time.
Not at all. I will try to make it the more understandable possible and I
will send you the patch.
--
Sylvain Rabot <sylvain@abstraction.fr>
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 197 bytes --]
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] gitweb multiple project roots documentation
2010-03-01 22:18 ` Jakub Narebski
2010-03-01 22:22 ` Sylvain Rabot
@ 2010-03-02 0:04 ` Sylvain Rabot
2010-03-02 0:38 ` Jakub Narebski
2010-03-10 18:55 ` [PATCH] gitweb readme fixed regarding per user project root repository Sylvain Rabot
1 sibling, 2 replies; 8+ messages in thread
From: Sylvain Rabot @ 2010-03-02 0:04 UTC (permalink / raw)
To: git; +Cc: Jakub Narebski, Sylvain Rabot
This commit adds in the gitweb/README file a description of how to use gitweb
with several project roots using apache virtualhost rewrite rules.
Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
---
gitweb/README | 67 ++++++++++++++++++++++++++++++++++++++++++++++++++++++--
1 files changed, 64 insertions(+), 3 deletions(-)
diff --git a/gitweb/README b/gitweb/README
index 6c2c8e1..2e55d38 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -312,12 +312,16 @@ If you want to have one URL for both gitweb and your http://
repositories, you can configure apache like this:
<VirtualHost *:80>
- ServerName git.example.org
- DocumentRoot /pub/git
- SetEnv GITWEB_CONFIG /etc/gitweb.conf
+ ServerName git.example.org
+ DocumentRoot /pub/git
+ SetEnv GITWEB_CONFIG /etc/gitweb.conf
+
+ # turning on mod rewrite
RewriteEngine on
+
# make the front page an internal rewrite to the gitweb script
RewriteRule ^/$ /cgi-bin/gitweb.cgi
+
# make access for "dumb clients" work
RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]
</VirtualHost>
@@ -343,6 +347,63 @@ something like the following in your gitweb.conf (or gitweb_config.perl) file:
$home_link = "/";
+Webserver configuration with multiple projects' root
+----------------------------------------------------
+
+If you want to use gitweb with several project roots you can edit your apache
+virtual host and gitweb.conf configuration files like this :
+
+virtual host configuration :
+
+<VirtualHost *:80>
+ ServerName git.example.org
+ DocumentRoot /pub/git
+ SetEnv GITWEB_CONFIG /etc/gitweb.conf
+
+ # turning on mod rewrite
+ RewriteEngine on
+
+ # make the front page an internal rewrite to the gitweb script
+ RewriteRule ^/$ /cgi-bin/gitweb.cgi [QSA,L,PT]
+
+ # look for a public_git folder in unix users' home
+ # http://git.example.org/~<user>/
+ RewriteRule ^/\~([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
+
+ # http://git.example.org/+<user>/
+ #RewriteRule ^/\+([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
+
+ # http://git.example.org/user/<user>/
+ #RewriteRule ^/user/([^\/]+)/(gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
+
+ # defined list of project roots
+ RewriteRule ^/scm(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/pub/scm/,L,PT]
+ RewriteRule ^/var(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/var/git/,L,PT]
+
+ # make access for "dumb clients" work
+ RewriteRule ^/(.*\.git/(?!/?(HEAD|info|objects|refs)).*)?$ /cgi-bin/gitweb.cgi%{REQUEST_URI} [L,PT]
+</VirtualHost>
+
+gitweb.conf configuration :
+
+$projectroot = $ENV{'GITWEB_PROJECTROOT'} || "/pub/git";
+
+These configurations enable two things. First, each unix user (<user>) of the
+server will be able to browse through gitweb git repositories found in
+~/public_git/ with the following url : http://git.example.org/~<user>/
+
+If you do not want this feature on your server just remove the second rewrite rule.
+
+If you already use mod_userdir in your virtual host or you don't want to use
+the '~' as first character just comment or remove the second rewrite rule and
+uncomment one of the following according to what you want.
+
+Second, repositories found in /pub/scm/ and /var/git/ will be accesible
+through http://git.example.org/scm/ and http://git.example.org/var/.
+You can add as many project roots as you want by adding rewrite rules like the
+third and the fourth.
+
+
PATH_INFO usage
-----------------------
If you enable PATH_INFO usage in gitweb by putting
--
1.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH] gitweb multiple project roots documentation
2010-03-02 0:04 ` [PATCH] gitweb multiple project roots documentation Sylvain Rabot
@ 2010-03-02 0:38 ` Jakub Narebski
2010-03-10 18:55 ` [PATCH] gitweb readme fixed regarding per user project root repository Sylvain Rabot
1 sibling, 0 replies; 8+ messages in thread
From: Jakub Narebski @ 2010-03-02 0:38 UTC (permalink / raw)
To: Sylvain Rabot; +Cc: git
Sylvain Rabot wrote:
> This commit adds in the gitweb/README file a description of how to use gitweb
> with several project roots using apache virtualhost rewrite rules.
>
> Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
For what it is worth:
Acked-by: Jakub Narebski <jnareb@gmail.com>
--
Jakub Narebski
Poland
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH] gitweb readme fixed regarding per user project root repository
2010-03-02 0:04 ` [PATCH] gitweb multiple project roots documentation Sylvain Rabot
2010-03-02 0:38 ` Jakub Narebski
@ 2010-03-10 18:55 ` Sylvain Rabot
1 sibling, 0 replies; 8+ messages in thread
From: Sylvain Rabot @ 2010-03-10 18:55 UTC (permalink / raw)
To: git; +Cc: Jakub Narebski, Junio C Hamano, Sylvain Rabot
the RewriteRule involving the '+' character is not working as it is
replaced by a space in urls when you click on links.
Signed-off-by: Sylvain Rabot <sylvain@abstraction.fr>
---
gitweb/README | 12 ++++++------
1 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/gitweb/README b/gitweb/README
index ad6a04c..2acf595 100644
--- a/gitweb/README
+++ b/gitweb/README
@@ -347,18 +347,18 @@ something like the following in your gitweb.conf (or gitweb_config.perl) file:
$home_link = "/";
-Webserver configuration with multiple projects' root
+Webserver configuration with multiple projects roots
----------------------------------------------------
-If you want to use gitweb with several project roots you can edit your apache
-virtual host and gitweb.conf configuration files like this :
+If you want to use gitweb with several projects roots then you can edit your
+apache virtual host and gitweb.conf configuration files like this :
virtual host configuration :
<VirtualHost *:80>
ServerName git.example.org
DocumentRoot /pub/git
- SetEnv GITWEB_CONFIG /etc/gitweb.conf
+ SetEnv GITWEB_CONFIG /etc/gitweb.conf
# turning on mod rewrite
RewriteEngine on
@@ -370,8 +370,8 @@ virtual host configuration :
# http://git.example.org/~<user>/
RewriteRule ^/\~([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
- # http://git.example.org/+<user>/
- #RewriteRule ^/\+([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
+ # http://git.example.org/u/<user>/
+ #RewriteRule ^/u/([^\/]+)(/|/gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
# http://git.example.org/user/<user>/
#RewriteRule ^/user/([^\/]+)/(gitweb.cgi)?$ /cgi-bin/gitweb.cgi [QSA,E=GITWEB_PROJECTROOT:/home/$1/public_git/,L,PT]
--
1.7.0
^ permalink raw reply related [flat|nested] 8+ messages in thread
end of thread, other threads:[~2010-03-10 18:55 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-03-01 19:15 Gitweb: Scan dir for repos & show these other specified repos Mike.lifeguard
2010-03-01 19:55 ` Jakub Narebski
2010-03-01 21:20 ` Sylvain Rabot
2010-03-01 22:18 ` Jakub Narebski
2010-03-01 22:22 ` Sylvain Rabot
2010-03-02 0:04 ` [PATCH] gitweb multiple project roots documentation Sylvain Rabot
2010-03-02 0:38 ` Jakub Narebski
2010-03-10 18:55 ` [PATCH] gitweb readme fixed regarding per user project root repository Sylvain Rabot
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.