{"thread":{"id":"61620","subject":"Question about Git protocol v2 status","startedAt":"2024-06-11T00:21:39Z","lastAt":"2024-06-11T09:26:38Z","messageCount":2,"participants":["rlee","Jeff King"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"496818","messageId":"kMdINBpG8_XazfNJVjKkaYyCH4VKRgjQryAvNw2ceVZrNmJ8pqoowMgmGBhhDMS_-nQ02OX0dMglJA2EPrE39XIBtcZc8Wkr2Vcoh6_pzMg=@proton.me","threadId":"61620","inReplyTo":null,"subject":"Question about Git protocol v2 status","fromName":"rlee","fromEmail":"rlee287@proton.me","sentAt":"2024-06-11T00:21:26Z","receivedAt":"2024-06-11T00:21:39Z","isPatch":false,"sender":{"key":"rlee287@proton.me","avatar":null},"body":"Hi all,\n\nI've been looking into writing a custom Git remote helper. The man page for \"gitremote-helpers\" states that stateless-connect is used to connect to a Git server using v2 of the wire protocol, but that it is \"Experimental; for internal use only.\" Moreover, the page describing protocol-v2 at https://git-scm.com/docs/protocol-v2 uses future tense, implying that v2 has not yet been finalized. However, the older blog post https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html states that v2 is expected to become part of Git v2.18 (with Git being many versions ahead of v2.18 by now), and my own testing shows that stateless-connect is used when performing Git operations via HTTPS with Github. Could I get some clarification on whether v2 is still experimental and on whether a custom gitremote-helper should declare (and implement) support for stateless-connect?\n\nThanks,\n\nrlee287 [at] proton [dot] me\n"},{"id":"496890","messageId":"20240611092637.GA3264649@coredump.intra.peff.net","threadId":"61620","inReplyTo":"kMdINBpG8_XazfNJVjKkaYyCH4VKRgjQryAvNw2ceVZrNmJ8pqoowMgmGBhhDMS_-nQ02OX0dMglJA2EPrE39XIBtcZc8Wkr2Vcoh6_pzMg=@proton.me","subject":"Re: Question about Git protocol v2 status","fromName":"Jeff King","fromEmail":"peff@peff.net","sentAt":"2024-06-11T09:26:37Z","receivedAt":"2024-06-11T09:26:38Z","isPatch":false,"sender":{"key":"peff@peff.net","avatar":"https://avatars.githubusercontent.com/u/45925?v=4"},"body":"On Tue, Jun 11, 2024 at 12:21:26AM +0000, rlee wrote:\n\n> I've been looking into writing a custom Git remote helper. The man\n> page for \"gitremote-helpers\" states that stateless-connect is used to\n> connect to a Git server using v2 of the wire protocol, but that it is\n> \"Experimental; for internal use only.\" Moreover, the page describing\n> protocol-v2 at https://git-scm.com/docs/protocol-v2 uses future tense,\n> implying that v2 has not yet been finalized. However, the older blog\n> post\n> https://opensource.googleblog.com/2018/05/introducing-git-protocol-version-2.html\n> states that v2 is expected to become part of Git v2.18 (with Git being\n> many versions ahead of v2.18 by now), and my own testing shows that\n> stateless-connect is used when performing Git operations via HTTPS\n> with Github. Could I get some clarification on whether v2 is still\n> experimental and on whether a custom gitremote-helper should declare\n> (and implement) support for stateless-connect?\n\nI think the docs are out of date. v2 is mature and has been the default\nsince v2.29.0, courtesy of eb049759fb (protocol: re-enable v2 protocol\nby default, 2020-09-25).\n\nThe stateless-connect code is heavily exercised via git-remote-curl, but\nI suspect you may be the first other helper to use it. So it's possible\nyou might find some corner cases. The point of it is mostly about\nturning the helper into a dumb pipe, so I'd be surprised if you found\nanything that caused us to rethink the helper interface there.\n\nSo my suggestion would be to work on it assuming that the interface is\nas documented, and let us know if you run into any problems (and\nlikewise report success if you find it!).\n\n-Peff\n"}]}