GitServerSetup
Contents
Git Service Overview
Our git services are hosted on git.openembedded.org. There is a user called git and the repositories are located within /home/git/repositories. There is one repository for managing gitosis itself and currently one called openembedded.git with our metadata. git, webgit and gitosis are installed as debian packages, /etc/gitweb.con is pointing to /home/git/repositories. git-daemon is running as a serv the service configuration can be found in /var/services/git-daemon/run and it points to /home/git/repositories as configuration as well.
Service Infrastructure
gitosis
Installed with debian. Clone :gitosis-admin if you are part of the admin team
gitweb
/etc/gitweb.conf, it will list repositories from /home/git/repositories that have the gitweb flag in the object dir. This is the case for openembedded.git
git-daemon
It is running as runsv service. This means there is a /var/run/service/git-daemon/ directory and inside the run file is the command of git-daemon. As basepath it is pointing to /home/git/repositores. Everything with a special flag inside the repository will be exported via git-daemon. This is the case for the openembedded.git repository
Managing and Troubleshooting
Adding new keys
You will need admin rights. Then you can git-clone git@git.openembedded.org:gitosis-admin. You can add a key to keydir. Use name.pub for the key, then you can add name to the gitosis.conf. Commit your change and then git-push and the guy is able to push afterwards.
How the commit mails and ciabot work
In the openembedded.git repository there is the activated "update" hook. At the end of this script git-notify in /home/git is called. git-notify was copied from the wine project at a certain date, see the top of the file.
Troubleshooting
Add loglevel = DEBUG below [gitosis] (2nd line). Then you get more output when login fails or no permissions are given.