On Thu, 4 Jun 2009 18:33:32 -0700 Shawn O. Pearce wrote: > Junio C Hamano wrote: > > "Shawn O. Pearce" writes: > > > > > If we don't recognize an extra arg supplied hidden behind the > > > command, we should skip it and look at the next extra arg, in > > > case we recognize the next one. > > > > > > For example, we currently don't recognize the "user=" extra arg, > > > but we should still be able to start this connection anyway: > > > > I do not necessarily agree 100% with that argument. > > Actually, we're already f'kd. We can't change the protocol like > we had hoped. There is always a place for another ugly workaround :) Add an extra \0 before additional parameters: "\0host=example.com\0\0param1=value1\0param2=value2\0" (the buggy loop will still terminate on double \0, and maybe the code we will add to parse the rest of data will work correctly). This will be enough for optional parameters (when the old server may silently ignore them without breaking the protocol). For mandatory parameters a change in the preceding "git-upload-pack" part will be necessary (like the "git://v2" suggestion).