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

Chris Bieneman via llvm-dev llvm-dev at lists.llvm.org
Fri Sep 9 15:27:26 PDT 2016


> On Sep 9, 2016, at 12:40 PM, Alexander via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
> Oh sorry. I missed that. I'll do that aswell. But what i said was just about the general idea of only using what you need and breaking of dependencies (in this case a kind repositorydependency if everything is not a submodul).
> 
> Imagine someone wants to work on something inside of LLVM itself. he creates a branch, does his changes. At some point he'll rebase his branch on top of the remote version. Lot of commits flow in. Even if no conflict occured, you might want to study the new commits. At this point however you have to filter out all the commits which do not influence the LLVM-Project. Instead if it's a repo with submodules, you can work on the LLVM submodul and review only those commits. I'd say the Monolith-Repo has (maybe) to much noise sometimes.
> The whole LLVM/CLang/... has some nice (theoretical) groups you can/could split them into. However reading about the cmake-magic here i get it that it might be hard to really decouple them.

It is actually simpler to decouple than you might think. Clang depends on LLVM libraries or functionality and LLVM’s CMake for functionality. In both cases a built and installed LLVM distribution is sufficient. LLVM’s CMake build installs the CMake modules and configuration files necessary to build Clang against a completely separate LLVM.

This is something we also support in some of the runtime projects (at the very least compiler-rt, libcxx, libcxxabi).

-Chris

> 
> Am 09.09.2016 um 16:11 schrieb Mehdi Amini:
>> 
>> 
>> On Sep 9, 2016, at 2:11 AM, Alexander Benikowski <sebal007 at googlemail.com <mailto:sebal007 at googlemail.com>> wrote:
>> 
>>> I'd vote for having each component in a seperated Repository and using a Monorepo with Submodules to work with.
>>> Since CLang depends on LLVM but not vice versa (if i am not mistaken. I'm new here), i'd prefer to just work with the LLVM repo if it is desired.
>> 
>> Can you elaborate why and what kind of workflow you have that would benefit from this?
>> 
>> Also did you read the document I sent with the examples?
>> 
>> -- 
>> Mehdi 
>> 
>> 
>> 
>>> 
>>> 2016-09-08 21:49 GMT+02:00 Renato Golin via llvm-dev <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>>:
>>> On 8 September 2016 at 19:37, Mehdi Amini via llvm-dev
>>> <llvm-dev at lists.llvm.org <mailto:llvm-dev at lists.llvm.org>> wrote:
>>> > I'd expect a cmake shortcut cmake
>>> > -DLLVM_ENABLE_PROjECTS=clang,libcxx,compiler-rt
>>> 
>>> Hey, I like this idea!
>>> 
>>> In that case, we don't need the directories in any particular
>>> location, as CMake would be able to find and link any place *we* want
>>> to put them in (in tree, flat out) and pull out their CMake files.
>>> 
>>> This would also help each project to be built in its own, if they so
>>> require, without upsetting the LLVM-canon build style.
>>> 
>>> cheers,
>>> --renato
>>> _______________________________________________
>>> 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>
>>> 
> 
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> 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/20160909/0397eb62/attachment.html>


More information about the llvm-dev mailing list