Mercurial push locks

Matt Mackall mpm at selenic.com
Fri Sep 26 21:30:00 UTC 2014


On Fri, 2014-09-26 at 11:19 -0600, durwin at mgtsciences.com wrote:
> > > > With the introduction of phases (Mercurial 2.1, Feb 2012), pushes 
> may
> > > > now acquire a lock on the sending side (so that it can update the 
> phase
> > > > of local commits). Thus, you may get a deadlock if you push inside a
> > > > hook where a lock is already held.
> > > 
> > > This appears to what is occurring.  Is there a way around this?  I 
> need to 
> > > perform a push
> > > to the other repository after each push to either.  Should I change 
> this 
> > > to a script and
> > > run it in an 'at' job delayed a minute?
> > 
> > What version of Mercurial are you running on the server?
> 
> Mercurial version 2.6.3

Hmmm, shouldn't be a problem here: the changegroup hook is run
immediately after lock release.

Perhaps you can create a minimal model of your flow:

$ hg init local
$ hg init server1
# add push hook
$ hg init server2

..and see if you can get it to lock.

-- 
Mathematics is the supreme nostalgia of our time.





More information about the Mercurial mailing list