
Git v2.20.0 - jjuhl
http://lkml.iu.edu/hypermail/linux/kernel/1812.1/00293.html
======
avar
This release incorporates "delta islands" which is code GitHub has been using
since 2015-ish (or earlier?) to store repositories and their forks in the same
object storage, with "islands" of objects as they diverge. See
[https://githubengineering.com/counting-
objects/](https://githubengineering.com/counting-objects/) for a related
blogpost of theirs.

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.

~~~
reificator
Your post as of my writing this comment makes it unclear: Is the code in this
specific release written by GitHub, GitLab, or both?

~~~
avar
It was written by GitHub, and has been used in their internal fork of git.git
for a long time. The work of integrating it with upstream was sponsored by
GitLab, since it's something they were interested in to save space.

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.

~~~
reificator
> _It was written by GitHub, and has been used in their internal fork of
> git.git for a long time. The work of integrating it with upstream was
> sponsored by GitLab, since it 's something they were interested in to save
> space._

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.

------
amelius
When do we get large binary support? (I know there are external projects for
this, but they are not nearly as convenient as they could be, as you'll have
to run separate server daemons, do separate configuration, etc.)

~~~
AndrewDucker
How would you implement large file support without running a daemon to host
the files?

~~~
amelius
Using the same daemon as git uses itself. E.g. ssh.

------
nwmcsween
Is there much stopping pack files being compressed with something else besides
zlib?

------
akulbe
I install git by compiling from source, as Ubuntu's version is behind a bit.

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

~~~
TimWolla
You can use this PPA to get “bleeding edge” versions of git:
[https://launchpad.net/~git-
core/+archive/ubuntu/ppa](https://launchpad.net/~git-core/+archive/ubuntu/ppa)

