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/ .
--- 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')