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

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Sun Jul 31 11:03:06 PDT 2016

> On Jul 30, 2016, at 10:38 PM, Robinson, Paul via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>> The only thing a monorepo gets you that strictly isn’t possible without
>> it is the ability to commit to multiple projects in a single commit.
>> Personally I don’t think that is a big enough justification, but that is
>> my opinion, not a fact.
> Okay, I just bumped into r277008, in which commits to llvm, clang, and
> clang-tools-extra all have the same SVN revision number.
> I don't know how it happened but it did.  Is this just an artifact of
> how somebody pasted together a bunch of git-svn projects, or is it
> something that a top-level git repo with submodules would allow?
> And if it is, then the "only thing a monorepo gets you" isn't something
> that you need a monorepo to get.

Nobody claimed that you need a monorepo to be able to get this on the absolute. Technically with a read-write umbrella repo, one could perform this kind of commit with the submodules proposal.
The difference I see is that we trade (optional) complexity at checkout out time vs (not-so optional) complexity during development (day-to-day) time.
In terms of manipulating the repo to achieve something, you can use all the “simple” git commands to handle the monorepo (`git branch` works uniformly for example).


More information about the llvm-dev mailing list