Git v2.20.0
lkml.iu.edu
lkml.iu.edu
This was work sponsored by GitLab, and I know they plan to use it in production sometime soon. So it's interesting for other similar hosting sites with a "fork" feature to look into it.
Github added the feature to their platform, but it didn't go upstream. Gitlab sponsored the dev-hours to rewrite the feature and actually push it upstream
The feature isn't interesting except for those that run a GitHub-like setup. I.e. repositories with a fork network where clones & fetches can be expected to be served from any repository in the network. In those setups it can make a lot of difference.
That makes it clear, thank you. My assumption was that GitLab was copying work done by GitHub.
> The feature isn't interesting except for those that run a GitHub-like setup.
Sure, doesn't mean I'm not interested.
[1]: https://githubengineering.com/counting-objects/#the-results
Another effort has been the introduction of the v2 protocol to Git, which has happened recently, and is only now starting to get rolled out at various hosting providers. That in and of itself hasn't helped with this, but allows for future extensions to the protocol, such as "this is not the full data, you can find the rest at xyz".
Then there's the "odb" effort, see e.g. here: https://public-inbox.org/git/20180802061505.2983-1-chriscool...
As to your "when" question. That's not really a question anyone has the answer to. It's hard to change a piece of software used by millions when you need forward & backwards compatibility, a lot harder than e.g. one company (such as Microsoft) rolling out similar features for their internal users.
But a lot of people are interested in it, and steady progress is being made towards it. It's not an area I work on (I hack on other things in git.git), but I think the above summary is somewhat fair, and hopefully it helps a bit.
Note that while "large binary support" doesn't need to be synonymous with "partially downloaded history", in practice that's what most people mean and want from such a feature. So I've assumed that that's the question you asked.
My normal set of options isn't working.
./configure --with-openssl --with-libpcre2 --with-curl --with-expat --with-pager=less --with-editor=vim --with-tcltk
LINK git-credential-store
LINK git-fast-import
LINK git-daemon
LINK git-imap-send
LINK git-http-backend
LINK git-sh-i18n--envsubst
LINK git-shell
LINK git-remote-testsvn
imap-send.o: In function `sk_GENERAL_NAME_num':
/usr/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_num'
imap-send.o: In function `sk_GENERAL_NAME_value':
/usr/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_value'
imap-send.o: In function `sk_GENERAL_NAME_pop_free':
/usr/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_pop_free'
/usr/include/openssl/x509v3.h:165: undefined reference to `OPENSSL_sk_pop_free'
imap-send.o: In function `ssl_socket_connect':
/home/aaron/Downloads/git-2.20.0/imap-send.c:287: undefined reference to `OPENSSL_init_ssl'
/home/aaron/Downloads/git-2.20.0/imap-send.c:288: undefined reference to `OPENSSL_init_ssl'
/home/aaron/Downloads/git-2.20.0/imap-send.c:290: undefined reference to `TLS_method'
/home/aaron/Downloads/git-2.20.0/imap-send.c:303: undefined reference to `SSL_CTX_set_options'
collect2: error: ld returned 1 exit status
Makefile:2374: recipe for target 'git-imap-send' failed
make: * [git-imap-send] Error 1