1. Pierre-Yves David
  2. mutable-history


Pierre-Yves David  committed 7fe06f3

exchange: fix push markers over wire protocol for http peer

Http actually interpret the data passed to _callpush expecting them to a bundle.
Interpretation of a markers stream as a bundle obviously led to crash.

  • Participants
  • Parent commits 85b3d54
  • Branches default

Comments (0)

Files changed (1)

File hgext/evolve.py

View file
 from mercurial import error
 from mercurial import exchange
 from mercurial import extensions
+from mercurial import httppeer
 from mercurial import hg
 from mercurial import lock as lockmod
 from mercurial import merge
         self.ui.status(_('remote: '), l)
     return ret
+@eh.addattr(httppeer.httppeer, 'evoext_pushobsmarkers_0')
+def httpclient_pushobsmarkers(self, obsfile):
+    """httpprotocol peer method
+    (Cannot simply use _callpush as http is doing some special handling)"""
+    self.requirecap('_evoext_pushobsmarkers_0',
+                    _('push obsolete markers faster'))
+    ret, output = self._call('evoext_pushobsmarkers_0', data=obsfile)
+    for l in output.splitlines(True):
+        if l.strip():
+            self.ui.status(_('remote: '), l)
+    return ret
 def srv_pushobsmarkers(repo, proto):
     """wireprotocol command"""