changeset 29294:077d0535f51f stable

bundle2: don't assume ordering of heads checked after push Usually, the heads will have the same ordering in handlecheckheads. Insisting on the same ordering is however an unnecessary constraint that in some custom cases can cause pushes to fail even though the actual heads didn't change. This caused production issues for us in combination with the current version of https://bitbucket.org/Unity-Technologies/hgwebcachingproxy/ .
author Mads Kiilerich <madski@unity3d.com>
date Wed, 01 Jun 2016 21:40:52 +0200
parents e82ca7d0967c
children 9b4f0ad02f51
files mercurial/bundle2.py
diffstat 1 files changed, 1 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bundle2.py	Wed Jun 01 15:48:38 2016 -0500
+++ b/mercurial/bundle2.py	Wed Jun 01 21:40:52 2016 +0200
@@ -1453,7 +1453,7 @@
     # Trigger a transaction so that we are guaranteed to have the lock now.
     if op.ui.configbool('experimental', 'bundle2lazylocking'):
         op.gettransaction()
-    if heads != op.repo.heads():
+    if sorted(heads) != sorted(op.repo.heads()):
         raise error.PushRaced('repository changed while pushing - '
                               'please try again')