On Thu, Jun 14, 2018 at 09:20:33PM -0700, Jonathan Nieder wrote: > What we've switched to is a versioned interface. By setting > GIT_SSH_VARIANT=simple, you are asking Git to promise to pass exactly > <x> options. If Git has a new option it wants to pass (like the "-o > SendEnv" thing) but can live without it, then it can avoid breaking > your wrapper and continue to follow this new promise. > > The trouble is that GIT_SSH_VARIANT=simple is too... simple. You > would like a variant that passes in [-p port] [-4] [-6] as well. We > didn't implement that because we didn't have the attention of any > wrapper writer who wanted it; in absence of a potential user, we > decided to wait for a user to propose the interface they want. Now we > can celebrate, since that day has come. I'm not sure I'm celebrating. It seems like work for not much benefit. I'd just as soon use VARIANT=ssh and deal with any fallouts if my script does not behave exactly like openssh in all regards. > How would you like your ssh variant to work? Some possibilities to > get the thought process going: > > A. Would you want to set a variable 'GIT_SSH_SUPPORTS_OPTIONS=p46' > to inform Git about what options you support? Not really. That just creates more work when I have to later use "op46" to support "-o", even though my script already handles it fine (or worse, since "-o" is open-ended). > B. Alternatively, what about a 'GIT_SSH_VARIANT=capabilities' variant > that calls "your-ssh-variant --capabailities" to get a > machine-readable list of capabilities it supports? Not really. Now I have to implement this --capabilities thing. This is literally a 10 line script. > C. Alternatively, would you like all parameters to come in on stdin, > credential helper style? That's even worse. ;) > D. Other ideas? I really am happy just saying "look, my script is basically openssh, so just assume that". If it breaks, it breaks, and I'll fix it. The one thing I was left puzzled by is why "-G" didn't work in the first place, since the script really does just pass through its options. Poking around, I think the problem actually _is_ the old ssh version thing. I have a new one on my workstation, but our CI boxes are jessie, and have openssh 1:6.7p1-5+deb8u4. And that's where I was digging into the failure. So sorry for misleading you earlier. The wrapper script looks like it's a red herring to some degree (I guess its name not being "ssh" contributed, but then the -G detection failed). > If you were using an old version of OpenSSH, this would be a reason to > revive the old patch, but I'm tempted to stall longer just to get more > use cases like this to come out of the woodwork. So apparently I am using an old version. Just switching to use "-V" seems like it might be another solution, then. -Peff