Dean Roehrich wrote:
> On Thu, Aug 07, 2008 at 06:54:11PM -0700, David.Marker at sun.com wrote:
>
>> Author: David Marker <David.Marker at sun.com>
>> Repository: /hg/scm-migration/onnv-gk-tools
>> Latest revision: 13c87b174da31bebe6de23f5ad9a4ecbdfbcb4ef
>> Total changesets: 1
>> Log message:
>> HOME environment var almost always needs to be set for hg and trust.
>> Fix other boneheaded mistakes I made (sadly only discovered while running on
>> gate).
>> Finally update config so it exists outside just gate repos.
>>
>> Files:
>> update: clone-closed-hgrc
>> update: clone-hgrc
>> update: etc/config.py
>> update: gate-closed-hgrc
>> update: gate-hgrc
>> update: hook/notify.py
>> update: lib/mail.py
>> update: lib/utility.py
>> update: on-hg.py
>> update: periodic/incremental.py
>> update: periodic/nightly-build.py
>>
>
> David,
>
> While the changegroup.x hooks are running in gate-hgrc I don't see how you're
> preventing a new changegroup from arriving. I guess I expected changegroup.0
> would use hg push --rev for this situation.
>
> Maybe the hg update should use --clean and --rev in gate-hgrc, or maybe it
> shouldn't be there at all. That update could run while a new changegroup is
> in the pretxnchangegroup hooks. And why do you need update on both the push
> and the pull gates (I guess you call them 'gate' and 'clone')? I think hg
> update in 'gate' is a good way to create a bit of confusion.
>
> Dean
>
I think you will find that the push lock is held until even changegroup
hooks are run.
def push_addchangegroup(self, remote, force, revs):
lock = remote.lock()
try:
ret = self.prepush(remote, force, revs)
if ret[0] is not None:
cg, remote_heads = ret
return remote.addchangegroup(cg, 'push', self.url())
return ret[1]
finally:
del lock
Notice it is inside addchangegroup() that both pretxnchangegroup and
changegroup hooks are run.
Am I missing something?
Anyway people still use cscopt from NFS for "gate" repo. So I do need to
have it updated.
If I am wrong about lock being held for the duration of the "push" (even
the changegroup hooks) then I agree I have a problem and should use "--rev".
-dvd