gitolite/doc/ips.mkd
Sitaram Chamarty 53f9a867df accumulated docfixes...
- non-core documentation reduced to be easier to maintain
  - much reduced progit section submitted to scott chacon, necessitating
    some changes to this copy
  - other minor stuff
  - the "idiot-proof setup" :)

(plus get rid of that silly "dot.pl"; it's not needed any more, if it
ever was!)
2012-06-25 12:17:00 +05:30

3.3 KiB

idiot-proof setup for gitolite

WARNING 1: this document uses my new, Linus-inspired, motto: people who get offended, should be offended.

WARNING 2: contains more words in ALL CAPS than all my other documents put together.

WARNING 3: this document will work for any Linux on which git has already been installed. BSDs, or legacy systems like Solaris, also should work but I can't guarantee it or test it.


Some people seem to get terribly, terribly confused by ssh. If you've read through all the [documentation on ssh][ssh] that came with gitolite, yet you still cannot get things to work, you have two choices:

  1. exchange your "developer" badge for a "manager" badge and then hire someone to do this.

  2. start over with the instructions below. They include some DRASTIC measures, requirements, and restrictions, almost NONE of which are normally necessary, but it's either that or a suit and tie from tomorrow so play along.

IMPORTANT: Do NOT ask for help on these instructions unless you have kept a detailed log of every command you typed, and the complete response you got. I do not ask for this information to help you -- that's only a front. I know these instructions work (at least on any Linux that already has git installed), so the real reason is to find where you mistyped something and mock you for that,

Assumptions

  • your name is Ron. Substitute accordingly in the instructions below.

  • you have a workstation.

  • you have a server called server.

  • you have root access on this server.

Tasks

  1. Create a new userid on the server, say git. This will be the hosting user. ("hosting user" means when you're done installing, your users will use URLs like git@server:reponame or ssh://git@server/reponame).

    Make sure this is a NEW userid.

    If the name you want already exists, then:

    • log in as root
    • if you have any data on that user's HOME directory save it somewhere else
    • delete the userid
    • obliterate the home directory of the user (since on most systems merely deleting the user does not remove the home directory).
    • re-create the userid again
  2. If you don't already have one, make yourself an ssh keypair on your workstation.

    Do NOT, in a fit of inspiration and energy, add this public key to the authorised keys file on the newly created hosting user!

    Your ONLY access to the new (git) userid should be by logging onto the server as root, then running su - git.

  3. Now copy the pubkey from your workstation (~/.ssh/id_rsa.pub) to the server as /tmp/ron.pub. (Your name is Ron, remember?)

  4. Log on to the server as root.

  5. Switch to the git user:

    su - git
    
  6. Clone the gitolite source code

    git clone git://github.com/sitaramc/gitolite
    
  7. Install it

    cd $HOME
    mkdir -p bin
    gitolite/install -to $HOME/bin
    
  8. Set it up

    cd $HOME
    $HOME/bin/gitolite setup -pk /tmp/ron.pub
    
  9. Now go to your workstation and type in

    git ls-remote git@server:gitolite-admin
    

    This should return something like

    9dd8aab60bac5e54ccf887a87b4f3d35c96b05e4    HEAD
    9dd8aab60bac5e54ccf887a87b4f3d35c96b05e4    refs/heads/master
    

    (do I have to mention that your SHAs will be different?)