UPDATE
I’ve been able to get Gitorious working on CentOS 6. Still some headaches but not nearly as bad as I was having when I first attempted here!
Here’s some info on getting CentOS 6 on a Windows Active Directory Domain.
Here’s how to setup TortoiseGit and Msysgit after you get LDAP working in Gitorious.
Want to throw several hours of your life away and never get them back?
Easy. Try setting up a Git repository server. Worst experience ever. I wanted to get (ha; no pun intended) on the Git bandwagon and use it for a project at work and to familiarize myself with its workflow. The setup was a nightmare. Actually, I never got it setup.
I’ve setup and managed TFS (Team Foundation Server), 2008, 2010, and 2012. I’ve also setup an internal NuGet gallery. None of those compare to the worthlessness of Git. After working on it for hours I could not create or push or do anything on my local machine that put source on the server.
In order to setup Git I started with the latest release of Ubuntu Server 64bit. First off I was peev’d because I couldn’t get the hostname for the server to register in our corporate DNS. That meant I couldn’t ping the server name: dev-git.company.com or dev-git. Wonderful. Since the server was getting its IP address from DHCP it could change at some point in the future. I decided to deal with it.
After some basic research it sounds like using LDAP or Active Directory with Git requires a source level knowledge of SSH, PAM, and a host of other *nix technologies. Fun. I scratched the idea of my team being able to easily use any repository that I created.
With a sigh I decided to Google for a guide to install Git. I knew I could easily use Ubuntu’s package repository apt to get the Git core but it does little more than just downloading the binaries and doing a basic system configuration. I found several guides but decided to follow http://computercamp.cdwilson.us/git-gitolite-git-daemon-gitweb-setup-on-ubunt as it detailed how to setup something called gitweb.
Well I got up to the point where I should be able to clone repositories.
git clone gitolite@git.server:gitolite-admin.git
Great. I’m on a windows machine. I could open the Git Bash prompt and try it from there, but wait a moment. The guide mentioned this earlier:
gitolite uses ssh keys to manage access to the git repositories. In the following steps, we set up gitolite to initialize its admin repository with your public key.
Oh, that’s right even if I did that from my Windows machine I have no clue what the public key is that I used. I suspect I could:
cat ~/.ssh/id_rsa.pub
Ya. What am I supposed to do with that output in Windows? Whatever. I’ll assume it works. Now on to the next part. Making the website work. I run the following:
sudo apt-get install highlight gitweb
No problems there. I change the gitweb.conf file as instructed:
sudo emacs /etc/gitweb.conf # change $projectroot to /home/gitolite/repositories # change $projects_list to /home/gitolite/projects.list
Now I navigate to http://git.server/gitweb/… and nothing happens. 404. Wonderful. Oh, did the guide mention that I needed Apache installed. Nope. Figured that gitweb would have a dependency on it but nope. I suppose I should install Apache…
After installing Apache I can finally see what I assume is the default setup of Git repositories. Cool. I continue following the guide until I get to a section title Pretty URLs. I again follow straight through. Well, when I get to the bottom of the tutorial I decide to hit the site again. Nothing. Nada. Whatever the Pretty URLs section did caused the entire Apache site to screw up. Seeing that I’m completely useless when configuring Apache (configuring anything from the command line) I reverted all my changes, yes I was smart enough to start backing up files.
Well, I decided to use TortoiseGit to try to create a repo on my machine and push it to the server as that’s what I’ve used to pull the source for the NuGet Gallery project that I worked on. Well damn. I’m sorry, but I just can’t figure it out.
Can anyone point out how to do this crap? I just don’t understand how to use a Windows client with my Git server. Is there a way I can run a local version of Git-Hub in a similar manner as I’ve done with my internal NuGet Gallery? For heaven’s sakes, can I make it so I can use Active Directory to authenticate?!
https://enterprise.github.com/
Ouch. That licensing model hurts. I was going to see if Github had an open source version of their website. Even if I had to enter the users manually that would be OK.
The whole thing is moot since I’ve lost interest in the project that I was going to work on.