* 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.