[llvm-dev] A Fresh Start with LLVM

Carsten Mattner via llvm-dev llvm-dev at lists.llvm.org
Sun May 13 22:15:34 PDT 2018


On 5/14/18, Bruce Hoult <bruce at hoult.org> wrote:
> On Mon, May 14, 2018 at 3:02 AM, Carsten Mattner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
>
>> On 5/13/18, Bruce Hoult via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>> > Yes, it's not bad. You can actually reduce the size of the .git
>> > directory to 597 MB by running "git repack -a -d -f --depth=250
>> > --window=250". This takes less than 5 minutes on a 16 core Xeon.
>>
>> You can also svn checkout any GitHub branch if that's something that
>> you might need.
>>
>> https://help.github.com/articles/support-for-subversion-clients/
>>
>> Disk space won't be saved this way because svn doesn't have
>> compressed pack files. Interesting enough a checkout of trunk is
>> 1.6GB but doesn't need to transfer anywhere near 1.6GB. Subsequent
>> updates will be fast, but I'm sure you can use git history so this
>> isn't practical anyway, I guess.
>>
>
> ​svn keeps a complete uncompressed copy of the checkout in the .svn
> directory, so it can figure out what you changed.​ That's, yes, 795 MB at
> the moment (github monorepo is 1.1 GB plus 795 MB of checked out src, for
> 1.9 GB of total size).

Wow, thanks, something learned :).

This shows how long it's been since I used svn as developer. I recalled
that the copy was a plain file and one could look at the files. But
that was a long time ago on Windows, parameters that might have
influenced the state or my memory is blurry there. Good to know and,
yes, sad it's inefficient.

For a tree to build from, I still prefer an svn checkout because the
size on disk will be constant and initial checkout doesn't require
using git's poorly (incompletely) implemented depth parameter.

For a work tree, I'd prefer git for access to a local history though
I do wish for git remote to signal a set of main branches and stop
pulling in zillions of temp and obsolete branches as found in many
projects.

> If you use svn+ssh then hopefully ssh is at least gzipping that for the
> transfer. A .tgz of the src (after moving the .git repo out of the
> directory) is 111 MB.

I used the https url you wrote and doubt it got rewritten to ssh.

> It's quite remarkable really that svn uses as much space for a single
> uncompressed copy of the source code as git uses for the entire project
> history.

And a copy of all sources, too, not just in a bare repository. Necessity
was the force behind the implementation.


More information about the llvm-dev mailing list