[Buildbot-devel] State of mercurial support
gerg.ward+buildbot at gmail.com
Mon Oct 27 14:59:00 UTC 2008
On 27 October 2008, bugs at almad.net said:
> after living on our fork for a while, we decided we could go back to
> upstream. However, I still found a lot of issues when using buildbot
> with hg, so I'd like to ask:
> 1) mode=update uses rm -rf && hg clone --rev. This is very slow for
> large repos; why is there not hg clone on first try and then only hg
> pull && hg update -r rev :
> 2) A while ago, I patched mode=copy to use hg archive instead of cp
> -rp. There is a ticket for it (#276), but from what I understood in
> discussion on maillist, this would break backward compatibility and
> build process for somes (who use svn info to extract things).
FWIW, I also have problems with Buildbot's support for our VC system.
In this case it's CVS, and the problem is largely our fault: rather than
a single "checkout" command, you need to run >200 "checkout" commands to
get a buildable tree. (And the exact commands to run vary from branch
to branch, as we create and remove projects between branches.)
Rather than fight with Buildbot on this one, I just wrote my own
checkout script, which I run using ShellCommand as the first step of my
build. This has the extra advantage that developers can use my checkout
script to get a reliably buildable tree, rather than the ad-hoc
inconsistent trickery that everyone used to use.
Of course, there is an obvious bootstrapping problem: how do I get the
checkout script onto the build machine? I have addressed that one by
making it part of the build infrastructure, like make, gcc, or cvs.
More information about the devel