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

Justin Lebar via llvm-dev llvm-dev at lists.llvm.org
Thu Jul 21 09:16:24 PDT 2016


> Our clones of LLVM and clang have a reasonable amount of history (a couple of hundred commits, I believe), including multiple branches, that we’d want to preserve.  Both branches have merged from upstream multiple times.  It’s one of the smaller friendly forks that I know about.  I’ve not used git filter-branch before, but I’d be very impressed if there is some simple invocation that can can move from this model.

James and I owe you something here.  I think this can be handled in a
straightforward manner, but I am not 100% sure how at the moment.  I
agree this is very important.

Our demo would be much more compelling if we can use an existing
branch.  Does anyone know of one we can play with?

> In particular, the fact that we have a third more public GitHub forks of LLVM than of clang, and eight times as many as of lldb implies to me that forcing everyone downstream to pull in all subprojects would not be particularly well received.

I have a hard time understanding this particular argument.  Per the
original e-mail, with three shell commands, you can hide whichever
llvm subprojects you want.  After doing that, the only overhead of the
subprojects is extra space in your .git directory, which would still
be much smaller than an llvm+clang objdir.

Is there something specific that you think will not be well-received?
Or maybe it's better to speak personally -- is there something
specific that will bother you personally about having to clone (but
not check out) everything?

On Thu, Jul 21, 2016 at 8:22 AM, David Chisnall via llvm-dev
<llvm-dev at lists.llvm.org> wrote:
> On 21 Jul 2016, at 16:11, James Y Knight <jyknight at google.com> wrote:
>>
>> I don't think this is a really hard problem though -- I can think of a few ways to help existing users that probably will work (although I'd want to try them first, to ensure it actually does work, of course). The two I'm thinking of are just doing "git diff" followed by "git apply --directory=llvm" if you just want to save a patch. Or, some "git filter-branch" invocation to rename all the files in your existing repo, followed by "git rebase" (or "git merge"), if you have some more history you want to maintain.
>
> Our clones of LLVM and clang have a reasonable amount of history (a couple of hundred commits, I believe), including multiple branches, that we’d want to preserve.  Both branches have merged from upstream multiple times.  It’s one of the smaller friendly forks that I know about.  I’ve not used git filter-branch before, but I’d be very impressed if there is some simple invocation that can can move from this model.
>
> I was in favour of the GitHub migration primarily because a lot of downstream LLVM users already have a workflow based around GitHub that works well and the proposal was to make this closer to the official workflow.  I’m very nervous about a last-minute change to require everyone downstream to restructure their workflows.
>
> In particular, the fact that we have a third more public GitHub forks of LLVM than of clang, and eight times as many as of lldb implies to me that forcing everyone downstream to pull in all subprojects would not be particularly well received.
>
> David
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>


More information about the llvm-dev mailing list