|
|
|
Before the development team can merge in your submission, you need to accept the Contriibutors License Agreement (http://confluence.public.thoughtworks.org/display/CCNET/Contributor+License+Agreement). Please send a note to ccnet@thoughtworks.com with a copy to the ccnet-devel list (ccnet-devel@googlegroups.com) stating your acceptance and we'll take a look at it.
"Mercurial" is a relatively new open source distributed version control system. See http://www.selenic.com/mercurial/wiki/ for more details, and http://hgbook.red-bean.com/hgbook.html for doc.
@Ross
I did that a while ago: http://groups.google.com.ag/group/ccnet-devel/browse_thread/thread/d59c606c93f0b511 Thanks, sorry about that. The team of currently active developers doesn't have a good list of who has and hasn't accepted it.
"still needs documentation (not exactly certain where to write that)"
Take the documentation for AccuRev, Subversion, or ClearCase as an example, write it up, and attach it here. Don't worry about formatting, we'll handle that when we check it in. I'm not thrilled with using the abbreviation "hg" for "Mercurial" - I know where it comes from, but it's a little obtuse.
A lot of mercurial related stuff is using "hg" as abbreviation (e.g. hgsvn, TortoiseHg), but i think naming the plugin "mercurial" should not be a problem. To me both names are good.
OK, I've got this all ready to go. Just waiting on documentation.
I've been so busy this past month :( Maybe I might have some time this weekend for writing the documentation.
I'm concerned about the external effects of subclassing the Modification object and Mercurial's SHA-1 "change numbers". I'll take this up on the ccnet-devel list and see what we can hash out. Something has to be done, as the default answer to the "How can we come up with unique change IDs in a distributed version control system?" question seems to be "Compute an SHA-1 hash over something and use the result".
I'm returning this issue to the unassigned pool. I no longer have any CCNET systems to work with.
i've been using ccnet with this patch for a couple of months on our project using hg and its working well.
the only problem is that if someone commits while a build takes place, the attempt to push the tag (we've configured the build to tag successful builds) fails (because there are new changes in the remote repository) - this causes the build to fail. the solution would be to try to do a pull, merge, commit then push but without losing that fact that a change was detected (in order to immediately kick off another build). in the meantime, we just manually pull, merge, commit, push then kick off the build - fortunately our build at this stage only takes a few minutes so the problem doesn't occur too frequently, i hope that all makes sense. I applied the patch to rev 4300 but there were a couple of issues. First, the original diff file appeared to contain duplicate entries (eg, perform a search for "Mercurial/MercurialTest.cs") which broke the build. Second, there were some minor fixes required because of changes that have occurred on the trunk.
I've fixed up the issues and attached a new patch file. I've built and run the unit tests (21 failures, 19 ignored - is that normal? None seem related to the patch.) but have *not* tried this build with a valid ccnet.build file. | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
It adds a new folder containing the new Mercurial namespace and classes, as well as a modification to the Modification class and a CreateDirectory utility function (which could probably be included as part of the filesystem interface but I didn't want to include a refactoring session with this patch).