[llvm-dev] [RFC] One or many git repositories?

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Wed Jul 27 13:33:02 PDT 2016


> On Jul 27, 2016, at 1:02 PM, Chris Bieneman via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
>> 
>> On Jul 27, 2016, at 11:03 AM, Bruce Hoult <bruce at hoult.org <mailto:bruce at hoult.org>> wrote:
>> 
>> On Thu, Jul 28, 2016 at 4:47 AM, Chris Bieneman via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>> Beyond all that I want to point out that the git multi-repository story is basically the same thing we have today with SVN except for the absence of a monotonically increasing number that corresponds across repositories. While admittedly you do get a linear history with using the mono-repository, that isn’t the only way to solve the problem, and I don’t really think that the benefit (not needing to write some tooling) justifies the increased burden applied to contributors that don’t use the full LLVM family of projects.
>> 
>> What do you believe is this increased burden?
>> 
>> The entire commit history of all llvm projects in a mono-repository is a 449 MB .git directory. It can be downloaded in about two minutes on a typical domestic internet connection (50 Mbps).
>> 
>> If you download only a snapshot of the current HEAD commit then the .git repository is 88 MB and takes under a minute. Any other individual commit should be similar.
>> 
>> This doesn't seem like a big burden to me.
>> 
>> The checked out llvm source directory -- which you say is all that many people want -- is 202 MB. That's without even building it.
>> 
>> Why is this burden unacceptable? It seems rather small to me.
> 
> It is a small burden to LLVM contributors to include everything because LLVM is large. Compiler-RT’s entire git repository is under 18MB, LibCXX is around 20MB, LibCXXABI is under 3MB. Those projects are frequently used without LLVM and do not have tight coupling. Forcing developers on those projects to be bound to LLVM is, IMO, a huge burden.

I’m pretty sure there are a lot of use-cases to checkout only libCXX, but I’d expect most to not require commit access.
What data do you have on how much "frequently used” these projects are in a configuration that requires commit access and where cloning the full repo would be a burden?

— 
Mehdi


> 
>> 
>> For comparison, using svn to checkout llvm using ...
>> 
>> svn co http://llvm.org/svn/llvm-project/llvm/trunk <http://llvm.org/svn/llvm-project/llvm/trunk> llvm
>>  
>> ... took me 1 minute 28 seconds and gives a 222 MB .svn directory, 428 MB total (so 206 MB for the source files checked out).
>> 
> 
> I am not advocating that we stay on SVN. I use Git-SVN today. My entire reason for commenting on this thread is to point out problems I see with this proposal as compared to the submodule proposal that Renato graciously assembled from lots of community feedback.
> 
> -Chris
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160727/99b95a10/attachment-0001.html>


More information about the llvm-dev mailing list