by oneeyedpigeon on 5/18/2018, 5:48:10 PM
by simias on 5/18/2018, 6:06:34 PM
Let that be a reminder to all the coders out there: if you ever design a protocol or file format to communicate between machines always remember to add a version field or some other way to allow for updates and revisions later without breaking everything. Having a way to specify extensions in a backward-compatible way is nice too.
by avar on 5/18/2018, 7:20:16 PM
The specification of the v2 protocol is here: https://github.com/git/git/blob/master/Documentation/technic...
One of the more exciting things is that it can now be extended to arbitrary new over-the-wire commands. So e.g. "git grep" could be made to execute over the network if that's more efficient in some cases.
This will also allow for making things that now use side-transports part of the protocol itself if it made sense. E.g. the custom commands LFS and git-annex implement, and even more advanced things like shipping things like the new commit graph already generated from the server to the client.
by Someone1234 on 5/18/2018, 5:58:16 PM
Too bad they didn't make Git LFS part of Version 2[0]. Most vendors[2] support LFS already but because it isn't required, some still lack it and its support cannot be assumed.
by lsiebert on 5/18/2018, 11:18:02 PM
I'm a very (very) minor contributor to git.
If you are at all interested in hacking on Git, it's not that difficult. Knowing C and portable shell scripting for writing tests are the big things.
One sticking point, you need to submit patches to the mailing list, you can't just do a github pull request.
See https://github.com/git/git/blob/master/Documentation/Submitt...
I still see github pull requests rather frequently, even though they have never been allowed. All discussion AND patches go through the mailing list, much like the linux kernel.
by newscracker on 5/19/2018, 2:51:01 AM
Sometime in the far future, someone will write an interesting story about how a double null byte came into existence in the git request protocol, and it will be amusing and interesting to look back. As the saying goes, hindsight is always 20/20. I'm glad that they found ways to maintain backward compatibility, at only a minor cost to understanding things.
by Confiks on 5/18/2018, 6:30:33 PM
It's quite a comedy that this feature has not been implemented for at least 6 years, solely because the raw git:// protocol's parameter handling was severely broken, and feature detection by disconnecting and retrying [1] was ultimately deemed far too dirty.
[1] https://public-inbox.org/git/CAJo=hJtZ_8H6+kXPpZcRCbJi3LPuuF...
by cpburns2009 on 5/18/2018, 5:47:15 PM
Wait, why was this posted by Google? I thought Git was made by Linus Torvalds.
by rwmj on 5/18/2018, 7:49:42 PM
Is there a git protocol variant that allows the client to avoid downloading objects that it already has stored locally in another repository or cache?
For example: I have the Linux kernel already cloned in some directory. I clone a second repo which has the Linux kernel as a submodule. Can I clone the second repo straightforwardly without having to download Linux a second time? (Well yes, but only by manual intervention before doing the git submodule update - it'd be nice if objects could be shared in a cache across also repos somehow).
by buckminster on 5/18/2018, 5:44:35 PM
AIUI, the git ssh protocol is just the git protocol tunnelled through ssh. So why do they need different mechanisms for signalling V2?
by Boulth on 5/18/2018, 8:25:39 PM
> Server-side filtering of references
I wonder if this will be somehow exposed by git daemon. It could be used for easy per ref access controls.
For example Git Switch [0] that uses Macaroons had to clone the repository to implement per ref ACL.
by ksec on 5/18/2018, 5:37:49 PM
I thought google uses hg, have they switched over to git as well?
by hartator on 5/18/2018, 8:40:34 PM
Is Git a Google project now?
by Ericson2314 on 5/18/2018, 5:41:40 PM
This is disgusting. So little forsight in the past... At least the outcome of quite useful.
by s2g on 5/18/2018, 9:12:00 PM
oh neat, and it's on a google blog.
That's great. Another subtle reminder that this ad company has way too much control.
by GauntletWizard on 5/18/2018, 5:33:17 PM
Interesting that they took to the Google blog to announce this; is there a corresponding LKML post?
by gpvos on 5/18/2018, 5:41:58 PM
Git didn't have a proper version number or extensibility field in its protocol? That's quite a bit of hubris.
The current (and pretty much only, ever, despite Linus having been the creator) maintainer of git is a google employee [1], in case anyone else was wondering.
[1] https://en.m.wikipedia.org/wiki/Junio_Hamano