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

Sean Silva via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 21 02:04:33 PDT 2016


On Thu, Jul 21, 2016 at 12:19 AM, Justin Bogner <mail at justinbogner.com>
wrote:

> Sean Silva <chisophugis at gmail.com> writes:
> > On Wed, Jul 20, 2016 at 11:51 PM, Sean Silva <chisophugis at gmail.com>
> wrote:
> >> On Wed, Jul 20, 2016 at 6:26 PM, Justin Bogner via llvm-dev <
> llvm-dev at lists.llvm.org> wrote:
> >>> Justin Lebar <jlebar at google.com> writes:
> >>>> If all you want is to continue using git the way you use it now, the
> >>>> multiple git repos gets you that (as does a sparse checkout on the
> >>>> single repo). My point is that, the move to git opens up a new,
> >>>> much more powerful workflow with branches that encompass both llvm
> >>>> and clang state.  We can do this with or without submodules, but
> >>>> using submodules for this is far more awkward than using a single
> >>>> repo.
> >>>
> >>> If I do `git log` in a sparse checkout that just has LLVM, will it
> >>> only show me LLVM commits? That is, how easy is it to filter out the
> >>> clang/lldb/subproject-X commits from a log? Negative globs are kind
> >>> of awkward.
> >>
> >>  It is extremely easy (even with a full checkout): `git log llvm/`
> >
> > To be clear, this is with a layout like:
> > https://github.com/llvm-project/llvm-project
>
> Right - I was assuming a layout where the subprojects are already in the
> places they need to be checked out to. With llvm-project's layout my
> question is silly.
>
> llvm-project's layout is kind of annoying, since with that I have to
> check out all of the repos yet I still need to add symlinks or something
> to actually use any of them.


Hopefully we could teach CMake about the new "default" structure. We
already have LLVM_EXTERNAL_{CLANG,LLD}_SOURCE_DIR (which is what I use with
llvm-project) so in principle CMake already is close to being capable of
understanding this layout if it becomes the default.

-- Sean Silva

It also means that anyone who is only using
> llvm has to change their paths from /path/to/llvm to /path/to/llvm/llvm,
> which is a little bit ugly.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160721/7f6d00e5/attachment.html>


More information about the llvm-dev mailing list