gitolite/doc/0-INSTALL.mkd
Sitaram Chamarty c54d3eabbc all src: (please read full commit message): allow local admin-defined hooks
You can now add your own hooks into src/hooks/ and they get propagated
along with the update hook that is present there now.  Please read the
new section in the admin document, and make sure you understand the
security implications of accidentally fiddling with the "update" script.

This also prompted a major rename spree of all the files to be
consistent, etc.  Plus people said that the .sh and .pl suffixes should
be avoided (and I was feeling the same way).  I've also been
inconsistent with that "gl-" prefix, so I cleaned that up, and the 00-
and 99- were also funny animals.

Time to get all this cleaned up before we get 1.0 :)

So these are the changes, in case you're looking at just the commit
message and not the diffstat:

    src/pta-hook.sh -> src/ga-post-update-hook
    src/conf-convert.pl -> src/gl-conf-convert
    src/00-easy-install.sh -> src/gl-easy-install
    src/99-emergency-addkey.sh -> src/gl-emergency-addkey
    src/install.pl -> src/gl-install
    src/update-hook.pl -> src/hooks/update
2009-11-13 18:37:46 +05:30

3.9 KiB

installing gitolite

This document tells you how to install gitolite. After the install is done, you may want to see the admin document for adding users, repos, etc.

There's an easy install script that requires bash (strongly recommended), but if you have no bash or you're on one of the legacy Unixes there's a slightly more manual process. Both are explained here.

In this document:

  • easy install
    • typical example run
    • advantages over the older install methods
    • disadvantages
  • manual install
  • upgrades
  • other notes
  • next steps

easy install

There is an easy install script that makes installing very easy for the common case. This script is meant to be run on your workstation, not on the server! It will take care of all the server side work, and get you "push-to-admin" too :-) In short, it does everything!

Assumptions/pre-requisites:

  • you have a server to host gitolite
  • git is installed on that server (and so is perl)
  • you have a userid on that server
  • you have ssh-pubkey (password-less) login to that userid
    • (if you have only password access, run ssh-keygen -t rsa to create a new keypair if needed, then run ssh-copy-id user@host)
  • you have a clone or an archive of gitolite somewhere on your workstation

If so, just cd to that clone and run src/gl-easy-install and follow the prompts! (Running it without any arguments shows you usage plus other useful info).

typical example run

A typical run for me is:

src/gl-easy-install -q git my.git.server sitaram

-q stands for "quiet" mode -- very minimal output, no verbose descriptions of what it is going to do, and no pauses unless absolutely needed. However, if you're doing this for the first time or you appreciate knowing what it is actually doing, I suggest you skip the -q.

advantages over the older install methods

  • all ssh problems reduced to just one pre-requisite: enable ssh pubkey (password-less) access to the server from your workstation first
  • the script takes care of all the server side work
  • when done:
    • you get two different pubkeys (the original one for command line access as before, plus a new one, created by the script, for gitolite access)
    • you can admin gitolite by commit+push a "gitolite-admin" repo, just like gitosis (i.e., full "push to admin" power!)

disadvantages

  • need a recent bash

manual install

If you don't have bash, it's not very complicated to do it manually. Just open the file src/gl-easy-install in a nice, syntax coloring, text editor, and follow the instructions marked "MANUAL" :-)

upgrades

Upgrading gitolite is easy.

To upgrade, pull the latest "master" (or other) branch in your gitolite repo clone, then run the same exact command you ran to do the install, except you can leave out the last argument.

And you might want to add a -q to speed things up :-)

Note that this only upgrades the software. Unlike earlier versions, it does not touch the conf/gitolite.conf file or the contents of keydir in any way. I decided that it is not possible to safely let an upgrade do something meaningful with them -- fiddling with existing config files (as opposed to merely creating one which did not exist) is best left to a human.

other notes

  • if you run src/gl-easy-install without the -q option, you will be given a chance to edit ~/.gitolite.rc. You can change any options (such as paths, for instance), but be sure to keep the perl syntax -- you don't have to know perl to do so, it's fairly easy to guess in this limited case.

next steps

The last message produced by the easy install script should tell you how to add users, repos, etc., and you will find more details in the admin document.