Changes

Jump to: navigation, search

Gitolite

2,563 bytes added, 16:17, 22 February 2022
* Provides GIT repositories to the members[[Category:Services]] * {{warning| This project is part of the now deprecated.}}{{warning| Gitolite is now in read-only mode as we are migrating to [http://gogs.io/ Gogs]. Our Gogs instance is available at https://git.fixme.ch/. See [Internal_Server[Git]]* If you want a private depot, just or ask [[User:gcmalloc|gcmallocdgellow]] to provide you one or to add you for more informations.}} == Goal ==* Provides GIT repositories to the members.* https://github.com/sitaramc/gitolite admin/wiki == Usage ==* Access a repository like this: git clone ssh://gitolite@git.fixme.ch:1337/$example*List repositories you can access ssh gitolite@foo.fixme.ch -p 1337 == Administration ==* Ask The following people to access the gitolite admin depot is under <tt>: RW = nemen RW = malik RW = rorist RW = francois RW = anael RW = crazygolem RW = prosouth RW = artphi=== Create a repo ===* Get the gitolite admin git clone ssh://gitolite@git.fixme.ch:1337/gitolite-admin<* Edit conf/tt>gitolite.conf, add your repo and permissions repo MySuperProject R = @all #pull RW = myuser #push RW+ = myuser #rewrite history*Commit and push to foo git commit -am "Add XXX repo" git push origin master === Add user ===* All Ask the depot are under <ttuser to create an ssh key and to give the public key ssh-keygen cat ~/.ssh/id_rsa.pub* Create a new file for the key in keydir echo 'ssh-rsa AAA[...]' >keydir/name@machine.pub git clone add keydir/name@machine.pub git commit -am "new key for name" git push origin master == Tip ==If you don't want to specify the port every time you use ssh:/git, you can add the host to your '''~/gitolite@.ssh/config''':  Host git.fixme.ch: Port 1337== Deploy ==* There is a git hook to publish most of the application in production.* The deploy hook is located at <code>/#depot_namehome/git/hooks/deploy.sh</ttcode>in the [[Internal_Server]].* You must add a <code>post-receive</code> hook in your project in a file <code>/home/git/repositories/yourproject/hooks/post-receive</code> with the following content: DIR=/path/to/project #example: /var/www/foo/htdocs APP=user-to-chown-to #example: www-data /home/git/hooks/deploy.sh $APP $DIR* Permissions fix for the hooks and repo chmod +x /home/git/repositories/yourproject/hooks/post-receive chown gitolite:gitolite /home/git/repositories/yourproject/hooks/post-receive chown -R gitolite:$APP /path/to/project find /path/to/project -type f -exec chmod 640 {} \; find /path/to/project -type d -exec chmod 750 {} \;* It's also a good thing to have a check of the database when you launch the application, and automatically create it if it doesn't yet exist. == How to use git ? ==If you come from svn, forget all that you have learnt, and start from scratch. A good start would be to do the http://git-scm.com/ tutorial.Some good ressources to learn git includes:* http://ftp.newartisans.com/pub/git.from.bottom.up.pdf* http://eagain.net/articles/git-for-computer-scientists/ == See also ==* [[Git_talk]]
290
edits