git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [ANNOUNCE] Git v2.16.0-rc0

From
Jeff King <peff@peff.net>
Date
Jun 15, 2018, 05:13 UTC
Message-ID
<20180615051321.GA5840@sigill.intra.peff.net>
In-Reply-To
<20180615042033.GB255581@aiede.svl.corp.google.com>
On Thu, Jun 14, 2018 at 09:20:33PM -0700, Jonathan Nieder wrote:
Show 12 quoted lines
> 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.

Show 5 quoted lines
> 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
Previous: Jonathan NiederNext: Jeff King
Message 18 of 20 in “[ANNOUNCE] Git v2.16.0-rc0”
  1. Junio C HamanoDec 29, 2017
  2. Kaartic SivaraamDec 29, 2017
  3. Paul SmithDec 29, 2017
  4. Thomas GummererJan 4, 2018
  5. Paul SmithJan 4, 2018
  6. Bryan TurnerJan 3, 2018
  7. Jonathan NiederJan 3, 2018
  8. Bryan TurnerJan 3, 2018
  9. Jonathan NiederJan 3, 2018
  10. Junio C HamanoJan 3, 2018
  11. Jonathan NiederJan 3, 2018
  12. Jeff KingJun 8, 2018
  13. Junio C HamanoJun 12, 2018
  14. Jeff KingJun 14, 2018
  15. Jonathan NiederJun 14, 2018
  16. Jeff KingJun 14, 2018
  17. Jonathan NiederJun 15, 2018
  18. Jeff KingJun 15, 2018
  19. Jeff KingJun 15, 2018
  20. Johannes SchindelinJan 4, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.