[Buildbot-devel] CVS source: checking out multiple modules does not work
Greg Ward
gerg.ward+buildbot at gmail.com
Mon Jul 16 16:15:46 UTC 2007
I don't see a ticket in Trac for this, so let me just check that I'm
not missing something really obvious before creating one.
Specifically, trying to do multiple CVS checkouts in a single builder
does not work. E.g. my master.cfg has this:
for dir in ("dir1", "dir2", "dir3"):
bf.addStep(source.CVS,
name="update:" + dir,
mode="update",
cvsroot=cvsroot,
cvsmodule=dir)
which causes buildbot to run
cvs -d ... -z3 checkout -d build -r HEAD dir1
cvs -d ... -z3 checkout -d build -r HEAD dir2
cvs -d ... -z3 checkout -d build -r HEAD dir3
on the slave. I'm a little confused about what happens next, but the
end result is that the 'build' directory contains just the contents of
'dir3' -- it seems that each checkout clobbers the results of the
previous checkout.
(The reason I'm confused is that when I run the above commands
manually, cvs sensibly notices the conflict and refuses to let me
checkout dir2 on top of dir1. I don't know what buildbot is doing
differently, but when it runs those commands, the dir2 checkout
clobbers the previous one.)
It turns out that a fix would be pretty easy: just get buildbot to run
these commands instead:
cvs -d ... -z3 checkout -d build/dir1 -r HEAD dir1
cvs -d ... -z3 checkout -d build/dir2 -r HEAD dir2
cvs -d ... -z3 checkout -d build/dir3 -r HEAD dir3
This works fine when I do it manually, and gives me the expected
structure: build/dir1 contains dir1 contents, etc. But I cannot
figure out how to customize the "-d" option that buildbot generates.
Any clues?
Thanks --
Greg
More information about the devel
mailing list