D1857: pull: re-run discovery and pullbundle2 if server didn't send all heads

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Sun Jan 14 22:04:05 UTC 2018


indygreg requested changes to this revision.
indygreg added a comment.
This revision now requires changes to proceed.


  I'm generally in favor of this functionality. It enables some interesting server features (such as pullbundles).
  
  This review needs to get hooked up to the Phabricator "stack" as the pullbundles patch(es). Using `hg phabsend A::B` should do that.
  
  I'd like to see a test around a server not sending changegroup data. I /think/ the existing code will abort the `while True` loop in this case. But I don't fully understand when various attributes on `pullop` are updated. I'd also feel more comfortable about things if there were an explicit check in the loop that the tip of changelog increased if revisions were requested. I'm worried about getting into an infinite loop due to a misbehaving server. I /think/ I'd like to see the establishment of a //contract// that if revision data is requested, the server **MUST** respond with revision data.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D1857

To: joerg.sonnenberger, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel


More information about the Mercurial-devel mailing list