# Accessing git repositories over HTTP␊ |
␊ |
Starting with indefero 1.2, git repositories are provided via http,␊ |
featuring read-only and read-write access with full integration with␊ |
indefero's access control mechanisms.␊ |
␊ |
## Access git repositories␊ |
␊ |
The repositories are available under http://YOURHOST/BASEPATH/r/PROJECT.␊ |
␊ |
For authentication, use the "extra password" which you can find on your␊ |
profile page.␊ |
␊ |
## Setup␊ |
␊ |
The main thing to setup is git_repositories and git_remote_url in␊ |
src/IDF/conf/idf.php␊ |
␊ |
git_remote_url should match http://YOURHOST/BASEPATH/r/%s, while␊ |
git_repositories points to the local directory supposed to contain the␊ |
repositories like /PATH/TO/REPOSITORIES/%s.git.␊ |
␊ |
## Setup requirements when using PHP over FastCGI␊ |
␊ |
There are a couple of things to setup when using PHP over FastCGI, as compared␊ |
to mod_php or similar integrated mechanisms:␊ |
␊ |
- You will need to setup a RewriteRule for mod_rewrite (in case of Apache,␊ |
analogous mechanisms might need to be setup for other http daemons), which␊ |
passes through the Authorization HTTP Header of a request.␊ |
␊ |
In case of mod_rewrite, the necessary line is:␊ |
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L]␊ |
␊ |
- The FastCGI adaptor must allow large requests to be handled by PHP,␊ |
otherwise push might fail.␊ |
␊ |
For mod_fcgid, this is the FcgidMaxRequestLen option, or MaxRequestLen in␊ |
older versions. Set this option to some large enough value - there is no␊ |
issue with RAM use, as another option defines the limit after which the␊ |
request is backed on disk, which can remain small.␊ |
␊ |
## When migrating from syncgit␊ |
␊ |
HTTP access can be used in parallel to syncgit.␊ |
␊ |
If you want to disable syncgit, just undo the changes detailled␊ |
in doc/syncgit.mdtext:␊ |
- In src/IDF/conf/idf.php keep git_repositories␊ |
- In src/IDF/conf/idf.php adapt git_remote_url to http://host/basepath/r/%s ␊ |
- In src/IDF/conf/idf.php remove idf_plugin_syncgit*␊ |
- Remove the cronjob that called gitcron.php␊ |
- Disable the git daemon (eg. /etc/event.d/local-git-daemon)␊ |
- You can remove the git user and group, if you also adapt the git repositories␊ |
to be owned by the www user.␊ |