[Buildbot-devel] Questions on source step's clobbering

Marcus Lindblom macke at yar.nu
Mon Jan 5 11:04:09 UTC 2009


Axel Hecht wrote:
> I'd recommend doing the following:
> 
> hg pull (1)
> hg update -C -r branch (default to default)
> patch.
> 
> (1) Note, hg versions prior to 1.1 may run into race conditions on pull. 
> hg pull -r tip works around the race condition, but doesn't pull all 
> heads on all branches. In this particular case, you might be able to 
> actually pull -r given_branch. For branches, that should work, for tags 
> not, though. The pulled clone by revision doesn't have the changeset 
> which actually adds the tag to hgtags, so the remote clone is on the 
> right revision, but doesn't have the tag information to confirm that. 
> One way to work around this is to actually pull the branch, and update 
> to revision on that branch. That should work at least as long as there 
> is only one head per branch. It might be a good idea to get the hg 
> version on the slave to only jump through these loops for versions older 
> than 1.1. Or you make the source class just clobber on error, that might 
> be a good idea anyhow.

For clobbering, I just noticed the purge extension:
http://www.selenic.com/mercurial/wiki/index.cgi/PurgeExtension

How about using that instead of clearing out stuff and doing a new pull? 
It should reduce repo-load quite a bit, if it works properly. (We could 
still fallback to clobber afterwards.)

I'll try to keep this in mind. I'll put up a ticket on it so it doesn't 
get forgotten.

Cheers
/Marcus




More information about the devel mailing list