[M3devel] making cvs checkout/update more robust in tinderbox (and maybe Hudson)

Jay K jay.krell at cornell.edu
Mon Jul 27 13:28:54 CEST 2009


CVS checkout and update of an entire tree seem to be extremely unreliable.
It takes a while and often times out.
 

I don't have time to do this right now, I think the cvs update/checkout should go like this:
 

if directory doesn't exist:
  checkout with -l

if directory does exist (it always will now actually, this if can go, except to error if it doesn't exist)
  cd into it
  upd -l various hardcoded directories, m3-sys scripts m3-ui m3-libs www doc
    This list need not be complete and it may contain directories that don't exist.
  for each directory cvs -z3 upd -dAP that directory
     notice that after the first one, the directory list will be correct
  Possibly do it like m3-sys m3-sys/m3cc m3-sys/m3gdb m3-libs m3-libs/m3core m3-libs/libm3
    to breakdown some of the larger ones.
  and then one cvs -z3 upd -dAP at the root
  check return code of just that line one, if failed, wait five minutes try again, if failed, fail

I plan to implement this and I'd /prefer/ to use Python.

If nobody else wants it, I'll turn it off by default.

Even just leaving the workspace aorund doesn't seem to solve the problem.
 
I'd also be curious about -z1 vs. -z3.
I usually use -z3. That's what some documentation recommended.
 

 - Jay


More information about the M3devel mailing list