author | Pierre-Yves David <pierre-yves.david@fb.com> |
Wed, 15 Apr 2015 10:36:21 -0400 | |
changeset 24754 | 5dc5cd7abbf5 |
parent 24752 | 5640efd1b160 |
child 24755 | cd89f4e6faf2 |
mercurial/exchange.py | file | annotate | diff | comparison | revisions | |
tests/test-bundle2-pushback.t | file | annotate | diff | comparison | revisions |
--- a/mercurial/exchange.py Wed Apr 15 01:16:40 2015 -0400 +++ b/mercurial/exchange.py Wed Apr 15 10:36:21 2015 -0400 @@ -201,8 +201,13 @@ if not pushop.remote.canpush(): raise util.Abort(_("destination does not support push")) # get local lock as we might write phase data - locallock = None + localwlock = locallock = None try: + # bundle2 push may receive a reply bundle touching bookmarks or other + # things requiring the wlock. Take it now to ensure proper ordering. + maypushback = pushop.ui.configbool('experimental', 'bundle2.pushback') + if _canusebundle2(pushop) and maypushback: + localwlock = pushop.repo.wlock() locallock = pushop.repo.lock() pushop.locallocked = True except IOError, err: @@ -242,6 +247,8 @@ pushop.trmanager.release() if locallock is not None: locallock.release() + if localwlock is not None: + localwlock.release() return pushop
--- a/tests/test-bundle2-pushback.t Wed Apr 15 01:16:40 2015 -0400 +++ b/tests/test-bundle2-pushback.t Wed Apr 15 10:36:21 2015 -0400 @@ -91,7 +91,6 @@ $ hg push pushing to ssh://user@dummy/server searching for changes - "wlock" acquired after "lock" at: */mercurial/bookmarks.py:259 (pushbookmark) (glob) remote: adding changesets remote: adding manifests remote: adding file changes