mharbison72 added inline comments.

INLINE COMMENTS

> indygreg wrote in exchange.py:321
> Since changegroup `v3` is not advertised in an existing bundle spec 
> definition at the top of this file, the proper thing to do here is create a 
> new `v3` bundle specification that uses changegroup v3 by default. Then all 
> bundle spec `v3` will be compatible with changegroup `v3`.
> 
> But before we create a new bundle spec, all features within it need to be 
> non-experimental. The whole point of bundle specs is that if 2 clients of 
> different versions claim they support a bundle spec, they actually do. If the 
> content of a bundle change within a bundle spec, that's a BC.
> 
> If changegroup `v3` isn't stable yet, we should not be associating it with a 
> bundle spec because a claimed `v2` bundle spec may not be readable by an old 
> version or a client without the experimental feature enabled. That breaks the 
> contract of bundle specifications.
> 
> That being said, for purposes of parsing a bundle, it _might_ be acceptable 
> to allow experimental features through. We absolutely cannot do that on the 
> write side, however, as it completely breaks the bundle spec contract that 
> content is well-defined.

> That being said, for purposes of parsing a bundle, it _might_ be acceptable 
> to allow experimental
> features through. We absolutely cannot do that on the write side, however, as 
> it completely breaks
> the bundle spec contract that content is well-defined.

That's concerning (I think).

I got onto this path trying to generate clonebundles for a repo that uses LFS.  
LFS forces the experimental changegroup3 (and removes the others as options).  
I was able to generate the bundle, and was using this to try to figure out what 
the magic string was for filling out the manifest.  So there are bundles of a 
not-reported spec in the wild (I assume this is what you meant by the write 
side).  And if we were to BC changegroup3 for example, IDK how we tell that 
these older bundles are *not* whatever the new bundlespec becomes, since it 
seems that the only additional needed logic is to look for changegroup3.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D7967/new/

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

To: mharbison72, #hg-reviewers
Cc: indygreg, marmoute, pulkit, joerg.sonnenberger, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to