[LLVMdev] git

David A. Greene greened at obbligato.org
Fri Jul 22 12:42:45 PDT 2011


Chandler Carruth <chandlerc at google.com> writes:

> Based on this comment, and some conversations on the IRC channel, I'd
> like to offer to work on such a conversion. 

Thanks Chandler!

> Any key things people want to see in it? Any key concerns? As soon as I have something written up I'll post it here.

Yes.  DO NOT use submodules.  I've been experimenting with them and they
are horrible.  Instead, I would like to see, in addition to each of the
current svn repositories converted to git, an "ecosystem" repository
put together via git-subtree.

https://github.com/apenwarr/git-subtree/
http://psionides.eu/2010/02/04/sharing-code-between-projects-with-git-subtree/
http://h2ik.co/2011/03/having-fun-with-git-subtree/

I put together such a tree using the existing git mirrors that looks
like this:

top-level (a git repository unto itself)
  README (some general directions)
  llvm (subtree)
    tools
      clang (subtree)
  dragonegg (subtree)
  gcc (subtree of upstream FSF)

I would add test-suite in there once it's available via git.

We don't need the ecosystem tree right away.  Better to convert each
repository by itself first.  We can always build the ecosystem tree
later.

I've got some formulas for working with git subtree and LLVM that have
turned out to work pretty well.  I can post a tutorial once things
settle down.

> - Provide individual git repositories for each LLVM project, along
> with meta repositories that use submodules to layout common
> development trees (e.g. Clang in tools/clang)

I agree with the individual repositories approach.

As I said, I would *strongly* suggest using git-subtree for this.
git-submodule is very unintuitive, to the point where I would not even
bother using such a repository.  I would build my own using git-subtree.

                                -Dave



More information about the llvm-dev mailing list