Strong +1 to move to an external hosted git sooner rather than later!

1) I personally had very good experiences with git submodules. They are 
certainly harder to get used to as you have to learn a bunch of extra magic on 
top of the already magical git: i.e. "git clone --recurse-submodules", then 
learn how to have your submodules point to different commits locally sometimes, 
etc.
I have had very good experience in another project that used to do llvm/clang 
style "just checkout those two project at the same date" and I found submodules 
more stable and robust and technically superior solution at the cost of a 
higher bar learning curve for new contributors.

So in this context I would recommend to change one thing at a time and only 
switch svn->git in step 1 and leave the switch to submodules as a 2nd step (or 
not do it at all if that is community consensus).

2) As far as the "increasing revision" numbers go: In my opinion this is about:
     - We really should stay with a linear history and not introduce merge 
commits.
     - As long as we do not move to submodules we need a solution to enforce 
"CommitDate"s (or also "AuthorDate"s) to be the time a commit was pushed to the 
server so our current workflow of checking out llvm/clang at the same time 
still works.
   I believe that those two points to be solvable with some server side 
scripting. With those two properties in place actual increasing numeric 
revision numbers bring that much value to the table and I would assume we can 
go without them.

- Matthias

> On May 31, 2016, at 1:28 PM, Mehdi Amini via llvm-dev 
> <llvm-...@lists.llvm.org> wrote:
> 
>> 
>> On May 31, 2016, at 1:16 PM, Chris Lattner via llvm-dev 
>> <llvm-...@lists.llvm.org <mailto:llvm-...@lists.llvm.org>> wrote:
>> 
>>> On May 31, 2016, at 12:31 PM, Renato Golin via llvm-dev 
>>> <llvm-...@lists.llvm.org <mailto:llvm-...@lists.llvm.org>> wrote:
>>> There has been some discussion on IRC about SVN hosting and the perils
>>> of doing it ourselves. The consensus on the current discussion was
>>> that moving to a Git-only solution would have some disvantages, but
>>> many advantages. Furthermore, not hosting our own repos would save us
>>> a lot of headaches, admin costs and timed out connections.
>> 
>> Personally, I’m hugely in favor of moving llvm’s source hosting to github at 
>> some point, despite the fact that I continue to dislike git as a tool and 
>> consider monotonicly increasing version numbers to be hugely beneficial.
> 
> Getting a monotonically increasing revision number seems doable in git with 
> some server-side scripting using git notes or named tags (yet to be seen is 
> how to achieve it *reliably* with github hosting).
> However the challenge is more about sharing this number across repositories 
> (i.e. having clang and llvm in sync). I can imagine some tooling for that, 
> but with a github hosting it may still be fragile.
> 
> Ideally, I'd prefer the cross-repository to be handled with an extra layer, 
> in a way similar as described in: 
> https://gerrit-review.googlesource.com/Documentation/user-submodules.htm 
> <https://gerrit-review.googlesource.com/Documentation/user-submodules.htm> 
> (somehow conceptually similar to Android manifests XML files). 
> It would be easy to have tooling/scripts for llvm that would easily say 
> "checkout llvm+clang+compiler-rt+libcxx+clang-extra here", or "update all 
> llvm subproject under this root", or "checkout this specific revision for all 
> these" (with a monotonic number for the revision).
> 
> (+1 to all the rest of what you wrote)
> 
> -- 
> Mehdi
> 
> 
>> The killer feature to me is the community aspects of github, allowing people 
>> to get involved in the project more easily and make “drive by” contributions 
>> through the pull request model.  Github also has a very scriptable 
>> interface, allowing integration of external bug trackers etc into the 
>> workflow (which is good, because its bugtracker is anemic).
>> 
>>> 4. We currently host our own SVN/Git, ViewVC and Klaus, Phabricator,
>>> etc. Not only this incurs in additional admin cost, but it also gets
>>> outdated, locally modified, and it needs to be backed up, etc. GitHub
>>> gives all that for us for free.
>> 
>> Yes, it would be great to get out of this business.
>> 
>>> 5. We can still use Bugzilla (and lock GitHub's own bug system), but
>>> we can also use GitHub's system to manage releases (it's actually
>>> quite good for that).
>> 
>> If we made this change, I think we should only change one thing at a time: 
>> change source hosting, but not phabricator or the bug tracker.  We could 
>> then discuss moving off phabricator to the github PR model, etc.
>> 
>>> 6. GitHub has automated testing of merge requests, meaning we can have
>>> pre-commit tests enabled on a set of fast bots, triggered by GitHub's
>>> own validation hooks.
>> 
>> This works pretty well.  The major problem is with tests that are flakey.
>> 
>> -Chris
>> _______________________________________________
>> LLVM Developers mailing list
>> llvm-...@lists.llvm.org <mailto:llvm-...@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-...@lists.llvm.org <mailto:llvm-...@lists.llvm.org>
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev 
> <http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev>
_______________________________________________
lldb-dev mailing list
lldb-dev@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-dev

Reply via email to