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

Marcus Lindblom macke at yar.nu
Wed Dec 31 00:54:42 UTC 2008


Marcus Lindblom wrote:
> Axel Hecht wrote:
>> (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.
> 
> Argh. I've read about that and I still got a headache from trying to 
> understand it. I think I'll wait a bit. Perhaps you could take a look at 
>   my patch once I'm done with it and see what needs doing?

(I should try to think a bit more before replying.. :)

I think I get it, but it's difficult since, IIUC, I might not have all 
the info.

How do we handle the branch/rev/tag data, given that I might get the 
branch/revision from change source or just the revision or branch from 
the web form?

Should I always pull the branch?

The update the revision on the branch? (if I have it, otherwise figure 
out the most recent head on the branch and use that?)

How about tags? Do they come in via the revision, or branch, from the 
web form? Should I update to the revision there as well? How do I figure 
out the revision?

Do we have sufficient test-cases for this?

Cheers
/Marcus




More information about the devel mailing list