[llvm-dev] GitHub anyone?

Joerg Sonnenberger via llvm-dev
Thu, 02 Jun 2016 17:54:15 -0000

On Thu, Jun 02, 2016 at 04:48:36PM +0100, Renato Golin via llvm-dev
wrote:
>  * Git developer tooling is a growing trend, while SVN tooling is
> dying. This is not just about GUIs, but repository management (GitHub,
> GitLab, BitBucket, etc versus SourceForge), bisects, branches,
> remotes, hooks, workdir, submodules and all the new development seem
> to be done on Git nowadays, not SVN. Windows may be an odd one related
> to GUIs, but Visual Studio has Git integration and I hear it's similar
> to the other MSVC VCSs. GitHub's desktop interface seems pretty cool,
> too.

I find it somewhat dishonest that the alternatives are Subversion and
Git. I don't see any reason why Mercurial is excluded from the list.
Given the existing Python requirement for a lot of the LLVM tooling,
that part is a non-issue. It has much better Windows support.

>  * Web repositories make it *a lot* easier to create add-hoc pull
> requests by non-developers, which could boost the number of
> contributions and future contributors, as well as external projects
> using LLVM components.

I hear this assertion, but I don't buy it. As I said on IRC, if I follow
the typical iteration process for patches from first (or even second and
third) time contributors, few such patches are directly acceptable.
That leaves the GitHub interface as inferior alternative to Phabricator.
It seems energy would be better spend on improving the latter, e.g. by
allowing registered users to trigger an integration test etc.

>  * Co-dependent patches already break buildbots, but the sequential ID
> helps us identify and ignore. They will continue to break, even if we
> use git sub-modules, so that doesn't change much, but it will be
> harder to spot the issue. Server side hooks may help, as well as
> sub-modules.

They also make bisecting across repository boundaries much easier. I
haven't heard any evidence that submodules properly deal with this.
Given that one of the primary interaction with the VCS for me is
bisection, anything making it more fragile or more difficult to work is
a huge no.

Joerg