* 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 a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).