On 01/23/2011 11:21 PM, Johannes Sixt wrote: > Am 1/21/2011 15:50, schrieb Russell King - ARM Linux: >> SetEnv GIT_PROJECT_ROOT /var/www/git >> SetEnv GIT_HTTP_EXPORT_ALL >> ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/ >> >> Great. Deciding that it will be http://servername.example.com/git/ is >> really damned annoying as that's traditionally where gitweb lives, >> which requires a different script alias. >> ... >> I'm really not interested in working out how to bodge this into working >> along side the existing gitweb setup by adding lots of rewrite rules,... > > It has been worked out for you already. It's just a single rule (although > a bit longish). Look for 'ScriptAliasMatch' in > http://www.kernel.org/pub/software/scm/git/docs/git-http-backend.html I was going to say, I have both gitweb and smart http support running in parallel, it's not terribly complicated. The way I'm doing it is a bit older (mainly that long ScriptAliasMatch broken out more), but it's still only 11 lines to the apache config: # Various environment setup, should be obvious SetEnv GIT_PROJECT_ROOT /path SetEnv GIT_HTTP_EXPORT_ALL 1 SetEnv GIT_EXEC_PATH /usr/libexec/git-core/ # Here so that we can do straight wget fetches for the objects files, # pack files and refs heads. # This isn't strictly neccisary, but if it's done we can use the inbuilt # sendfile() of apache for the sending of those files vs. funneling them # through the CGI AliasMatch ^/(.*/objects/[0-9a-f]{2}/[0-9a-f]{38})$ /path/$1 AliasMatch ^/(.*/objects/pack/pack-[0-9a-f]{40}.(pack|idx))$ /path/$1 AliasMatch ^/(.*/refs/heads/.*)$ /path/$1 # Meat of how to make this all work ScriptAliasMatch "^/(.*/HEAD)$" /usr/libexec/git-core/git-http-backend/path/$1 ScriptAliasMatch "^/(.*/info/refs)$" /usr/libexec/git-core/git-http-backend/path/$1 ScriptAliasMatch "^/(.*/objects/info/[^/]+)$" /usr/libexec/git-core/git-http-backend/path/$1 ScriptAliasMatch "^/pub/scm/(.*/git-upload-pack)$" /usr/libexec/git-core/git-http-backend/path/$1 ScriptAliasMatch "^/pub/scm/(.*/git-receive-pack)$" /usr/libexec/git-core/git-http-backend/path/$1 Just an example anyway, the paths have been shortened to fit e-mail better. - John 'Warthog9' Hawley -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html