This is an archive of the discontinued Mercurial Phabricator instance.

streamclonebundle: make sure we accept new stream clone bundle spec
ClosedPublic

Authored by lothiraldan on Jan 31 2018, 11:25 AM.

Details

Summary

When asked specifically, the code do a sanity check on the clone bundle to
ensure it's a stream bundle. As we introduced a new stream bundle spec, update
the logic to support it.

With this final changeset, we can now announce safely a stream v2 clone bundle
and old clients would not crash trying to process it.

This changeset address the last comment from Gregory Szorc on the stream v2
bundle series.

Diff Detail

Repository
rHG Mercurial
Lint
Automatic diff as part of commit; lint not applicable.
Unit
Automatic diff as part of commit; unit tests not applicable.

Event Timeline

lothiraldan created this revision.Jan 31 2018, 11:25 AM

@indygreg Could you take a look at the series before it gets too distant to merge cleanly?

Ping on this series

In general, I'm pretty happy with this series. Although I held off accepting changesets because I think we should have a mini discussion about content options versus capabilities before things get out of control and we duplicate too much logic.

I'd also like to note that bundle specs are intended to be user facing and their behavior should be as simple as possible for people. e.g. consider adding keywords to parameters instead of requiring parameters have values.

Also, while you are here, we should consider defining a v3 bundlespec that allows embedding of bookmarks, phases, obsolescence markers, etc. Basically all the modern features of bundle2 that modern peers and servers will negotiate with each other.

@indygreg I'm 👍 on having this discussion. When do you want to have it? What would be the best medium for it, a video-call?

lothiraldan updated this revision to Diff 7378.Mar 30 2018, 8:55 AM
indygreg accepted this revision.Mar 30 2018, 1:13 PM
This revision is now accepted and ready to land.Mar 30 2018, 1:13 PM
This revision was automatically updated to reflect the committed changes.