[Buildbot-devel] problem with cvs checkout on windows -> BUGFIX (patch)

Alexander Lorenz lorenz at testingtech.de
Tue Aug 29 12:01:47 UTC 2006


Alexander Lorenz wrote:
> hello,
>
> i'm having the following problem when trying to run the cvs checkout  
> buildstep from step.py on a windows client:
>
> apparently, with windows, the cvs command is not called directly, but 
> treated like a shell commands step, thus executed as "cmd.exe /c cvs ...".
> this leads to cmd.exe not resolving the source stamp argument ( -D) 
> correctly and passing each part of the date to the cvs command as a 
> single argument.
> the result is the cvs command not being able to check out module 
> "Monday" etc. , of course.
>
> is there a way to get the cvs command being called directly, not via 
> cmd.exe?
>
> another way - probalby better - would be to quote the source stamp.
>
>
> btw, quote from the cvs manual:
>
> "Remember to quote the argument to the -D flag so  that  your  shell  
> doesn't  interpret spaces as argument separators."
>
>
> ;)
>
>
>
> regards
>
> lx
>
>   


hello,

i have now solved abovementioned problem with 'cvs' from cygwin and the 
'-D' option (revision date) on a windows slave:

i patched the CVS class in 'slave/commands.py' so that it now 
distinguishes between a posix and a windows host, and puts "" around the 
cvs date argument for the latter.

i think this would also be uselful to go into the main trunk, sinvce it 
corrects an abberation from the cvs standard manual (see above).
what do you think, brian?



regards

lx


Index: buildbot/slave/commands.py
===================================================================
RCS file: 
/usr/local/cvs_root/ThirdParty/buildbot/buildbot/slave/commands.py,v
retrieving revision 1.2
diff -u -r1.2 commands.py
--- buildbot/slave/commands.py 15 Mar 2006 15:04:52 -0000 1.2
+++ buildbot/slave/commands.py 29 Aug 2006 11:49:22 -0000
@@ -850,7 +850,11 @@
self.login = args.get('login')
self.sourcedata = "%s\n%s\n%s\n" % (self.cvsroot, self.cvsmodule,
self.branch)
-
+
+ if self.revision:
+ if (runtime.platformType == 'win32'):
+ self.revision = "'" + self.revision + "'"
+
def sourcedirIsUpdateable(self):
if os.path.exists(os.path.join(self.builder.basedir,
self.srcdir, ".buildbot-patched")):







More information about the devel mailing list