Ok, I’ve drunk the distributed source code control kool-aid. I’m convinced. I want it. Unfortunately, for various reasons, if I want to use it at work right now, it has to run on Windows.
That is, I need to be able to *serve* the repositories from Windows. I don’t have the luxury of slapping a Linux box or two in our server room for this purpose (yet), and so I have to be able to do it from Windows.
Mercurial seems to have the best client support on Windows, so that’s the one I’m going to try first. It looks like there’s three ways to serve up a repository:
hg serve
This is only meant for small groups, on controlled networks, and it only handles clone and pull ops. We are a relatively small group, 8-10 people, and the network is controlled. If clone/pull is all most people need to serve up, then this may be the way to go for the 80% case.
hg over SSH
If you have an SSH server, you can do hg over ssh. This means installing Cygwin, which is overkill, I think, or using something like copSSH. I think I’d also have to manually manage users, or get permission from IT to hook in to the domain authentication stuff. That’s theoretically possible, but wouldn’t be easy for them or me.
hg over HTTP using CGI
If you have a web server, you can use that instead. There’s Apache, LightTPD, and IIS. I haven’t seen any success stories for hg on IIS, and I’m not really in this to break new ground if I don’t have to, so that leaves Apache and LightTPD. Of those two, I’m going to try LightTPD first, it’s a smaller install.
Not everybody will need push support, of course. I may be able to get away with only setting this up on a few key machines, and letting everybody else just do hg serve. They would still be able to pull changes from other repositories, and with hg serve we could pull changes from theirs. This would support the KernelPractice style, which is where I’d like to be when this is set up and working.
(edit: removed a trailing sentence fragment, what I get for not proofreading…)