<div dir="ltr"><div dir="ltr">This sounds like generally a good direction to me, but I don't understand the details yet.<div><br></div><div>One tiny correction: </div></div><br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">My understanding is that right now, unison simply assumes that the<br>
remote side speaks the same protocol, and things deteriorate from there<br>
if it is not true (because of a 2.48/2.51 mismatch).<br></blockquote><div><br></div><div>There's an explicit check for version number compatibility, not an assumption.  So things don't deteriorate; they just stop.  :-)</div><div><br></div><div>Keeping socket mode seems like a good idea if possible.  I do think there are people out there with useful use cases.  (Unison gets applied an an astonishing range of situations.)</div><div><br></div><div>You're probably already thinking about this, but one critical aspect of protocol negotiation is the set of preferences that each side supports.  We did take the step a few years ago of introducing "client-only" preferences, which can be added without bumping the protocol number.  But this scheme is getting fancier than that!</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">  2.51.5 will simply announce as 2.51.5<br>
<br>
  2.51.5, if it sees the remote as 2.51.5 or higher, instead of starting<br>
  the old protocol, will send the first message of the "determine<br>
  supported proto versions negotiation protocol".  If it sees something<br>
  earlier, it will just do the old protocol.<br></blockquote><div><br></div><div>I'm not 100% clear how this will work.  If the <u>type</u> of some data structure changes, then how will the code be able to switch protocols without some kind of translation layer?</div><div><br></div><div>   - B</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex"><br>
</blockquote></div></div>