[Buildbot-devel] Removing CVS checkout -d option?

Ian Britten britten at caris.com
Tue Jun 17 16:39:04 UTC 2008


Charles Lepple wrote:

>>>Is there any way to get buildbot to not put in a "-d build" option
>>>when running the "cvs checkout" command?
>>
>>>The presence of the "-d build" option conflicts with the contents
>>>of our CVSROOT/modules entries, resulting in an invalid checkout.
>>
>>Can anyone suggest any workarounds?  If I can't get our code checked
>>out, there won't be much for buildbot to do, eh?  :(
> 
> You might have to provide an excerpt of your modules file for people
> to understand how to resolve the conflict.

It's not pretty.. :(

A lot of this is perhaps a questionable approach, and some is a
workaround for problems we've had.  Irregardless, there's a lot of
stuff set up this way, and rebuilding all our repositories isn't
really feasible/practical at this time.

------------ CVSROOT/modules --------------
include &empty

mylib -a include mylib_src mylib_inc
mylib_inc -d include/mylib mylib_inc
mylib_src -d mylib mylib_src
------------ CVSROOT/modules --------------

Doing a "cvs co mylib" will result in
     mylib
     include/mylib
     include/empty   <- Ignore this - It's a workaround
being checked out in the current directory, with the appropriate
files in each subdirectory.


Trying to do it as "cvs co -d tmp mylib" will result in errors like:
cvs checkout: Updating empty
U empty/placeholder.txt
cvs checkout: existing repository /cvs/core/CVSROOT/Emptydir does not match 
/cvs/core/mylib_src
cvs checkout: ignoring module mylib_src
cvs checkout: existing repository /cvs/core/CVSROOT/Emptydir does not match 
/cvs/core/mylib_inc
cvs checkout: ignoring module mylib_inc

> The buildbot source steps
> are designed to check out the code into a subdirectory that varies
> based on whether you are building from the source directory, or
> copying source to build.

Understood.
If that is the sole goal/purpose though, I wonder if buildbot could
be tweaked/enhanced to just do something like a "mkdir build;cd build"
before doing its checkout?  (Then a "cd .." after)
I'd rather not have to graft yet another hack into our module
definitions - They're shameful enough already... :(

[ PS - Just to note: The CVS manual documents the behaviour of the
-d option as being *generally* like "mkdir build;cd build", but there
are cases where the effect isn't the same. ]

Thanks for any help, suggestions, etc!
Ian




More information about the devel mailing list