From: Junio C Hamano Date: Sat, 28 Feb 2015 00:26:58 GMT Subject: Re: [RFC/PATCH 0/3] protocol v2 Message-ID: In-Reply-To: On Fri, Feb 27, 2015 at 4:07 PM, Duy Nguyen wrote: > > There may be another hole, if we send "want ", it looks > like it will go through without causing errors. It's not exactly no-op > because an empty tree object will be bundled in result pack. But that > makes no difference in pratice. I didn't verify this though. In addition to "that's not a no-op" problem, unless the old server has a ref that has an emtpy tree at its tip, such a fetch request will be rejected, unless the server is configured to serve any object, no? If your new server does have a ref that points at an empty tree, a client may request you to send that, but this is not a problem, because the new server can tell if the client is sending it as a no-op probe or a serious request by looking at its capability request. A serious old client will not tell you that he is new, a probing new client does, and a serious new client does. So your new server can tell and will not be confused. > as a commit. But even if the parsing is through, a non-empty > shallowCommits set would disable pack bitmap. Performance penalty is fine. Over time we would upgrade and the point of the exercise is not to cause the old-new or new-old pair to die but keep talking the old protocol and getting correct results.