I would like to setup a central Mecurial repository on a Windows 2008 server which only allows both push and pull access to certain users. This is to allow developers working remotely to push/pull changes through the central repository while working remotely.
We have mercurial running on Windows Server 2003 and IIS. It is working well for us.
For access control, you have two main options:
- Maintain an access control list for push and pull in the hgrc file for each repository.
- Restrict access using IIS integration with Active Domain.
You can mix and match these solutions for even more control.
This 4 part blog post I wrote a few months back should get you up and running, I wrote it for Windows Server 2003 and IIS, but the techniques are mostly the same:
You'll come across a couple of minor differences on IIS 7, but the theory is all the same.
It covers everything, from the basics of installing and configuring Mercurial for IIS, to Active Directory integration, ISAPI rewriting to hide ugly URLs, customization of the UI to make it look prettier. It should get you up and running.
That's how I've set it up on mine -- Mercurial (hg) with active directory
You can try HgLab: it's a hosted Mercurial server with pull and push support, access control and Active Directory integration.