I have a following question. We are currently trying to select an appropriate structure for our development. What we are trying to achieve is the following:
- There is a central repository in Mercurial that we have – let’s call it A.
- There are also repositories in Mercurial that are the children of A – repositories B, C, and D (for each developer).
- Each of these repositories has a hook binding it to Hudson.
- Hudson has several jobs (for each developer) – it generates a build and deploys it on the test server in the catalog for the concrete developer that made a push to it’s own repository.
- Therefore each developer can play with his own repository and make pushes to the central one only about once in a week.
The question is how to host all those repositories on a single server. I want something like:
In that way I can create scripts in Hudson for each repository and that way the jobs of one developer will not affect the other in any way, nor will the testing of EARs overlap, since every developer will get his own EAR generated and deployed.
UPD. Thanks to everyone for answering. Now we use the following structure.
- The central repository is hosted at 8000 port with hg serve command.
- As for the personal developer repositories, they were created by cloning from central repository and then hosted on 8001 port with the help of hgweb.cgi (watch this tutorial).
Look into configuring hgwebdir.cgi for Apache:
https://www.mercurial-scm.org/wiki/HgWebDirStepByStep
That is how we have ours set up, it’s super easy (it’s child’s play compared to Apache SVN setup), but if you have any problems come back with an edit.
Of course we host ours on https://myHgServer/hg/repo1, repo2, etc. but that is all apache configs.
We combine this with phpHgAdmin for easy administrative access and configuration of repos.