Migrating the llvm-emacs mode to a separate git repository

Hello llvm devs,

Melpa[1] is pretty much the most common package manager for emacs and very
recently the llvm-mode got removed from it[2] due to performance issues.
This issue is not unique to llvm-mode, but affects a bunch of projects with
very large git repositories[3].

Will it be possible to split this into a new separate git repo? This should
make it easier for the emacs community to work with this code and make it
less intimidating for new users to contribute to.

Current melpa maintainers and previous llvm-mode commitors are in CC.

[1] https://melpa.org
[2]
https://github.com/melpa/melpa/commit/aa2d7a88731ecd9410ab7dc887a7a5f837d8a93b
[3] https://github.com/melpa/melpa/issues/5361#issuecomment-387710812

Melpa[1] is pretty much the most common package manager for emacs and very
recently the llvm-mode got removed from it[2] due to performance issues.

Wouldn't svn be better here? It ought to allow you to checkout just
the utils/emacs directory (or not even that with "svn cat"). We're
eventually planning to move to git as the primary source of truth, but
there will always be svn fallbacks in place.

Will it be possible to split this into a new separate git repo? This should
make it easier for the emacs community to work with this code and make it
less intimidating for new users to contribute to.

That's a separate issue, of course. I'm not entirely convinced there
are hordes of Emacs developers just itching to help out with
tablegen-mode but deterred by the big repository. But maybe I'm wrong.

Cheers.

Tim.

As far as I can see, melpa dropped svn support some time ago....

https://github.com/melpa/melpa/pull/4802

I am in favor of doing whatever is needed in order to get llvm-mode back
into melpa. It's much more convenient than keeping my own .el copy up to
date (even though, or perhaps because, I have too many local llvm
checkouts).

Maybe someone can maintain an unofficial mirror of just utils/emacs on
github and melpa can pull from there?

- stephen

As far as I can see, melpa dropped svn support some time ago....

https://github.com/melpa/melpa/pull/4802

>> Melpa[1] is pretty much the most common package manager for emacs and

very

>> recently the llvm-mode got removed from it[2] due to performance

issues.

>
> Wouldn't svn be better here? It ought to allow you to checkout just
> the utils/emacs directory (or not even that with "svn cat"). We're
> eventually planning to move to git as the primary source of truth, but
> there will always be svn fallbacks in place.
>
>> Will it be possible to split this into a new separate git repo? This

should

>> make it easier for the emacs community to work with this code and make

it

Jaseem Abid via llvm-dev <llvm-dev@lists.llvm.org> writes:

Hello llvm devs,

Melpa[1] is pretty much the most common package manager for emacs and very
recently the llvm-mode got removed from it[2] due to performance issues.
This issue is not unique to llvm-mode, but affects a bunch of projects with
very large git repositories[3].

Will it be possible to split this into a new separate git repo? This should
make it easier for the emacs community to work with this code and make it
less intimidating for new users to contribute to.

I don't think splitting these out of the main llvm repo would make sense
given that we're probably headed to having fewer repositories in the
future. Besides which, it's pretty convenient to have these within the
llvm source.

As for melpa, I think mirroring utils/emacs to a dedicated repo seems
fine. You could presumably use git subtree merges and make a read-only
mirror that would be perfectly useable.

Another crazy idea – can mepla use shallow clone / sparse checkout?
Will it speed up all the things?

Even http would do, the raw file links on github are pretty stable.

Tim.

Another idea: extract the history of tablegen-mode into a separate orphan branch, and merge it routinely. Have a policy of always using that branch to contribute to tablegen-mode, and merge it back into mainline routinely. MELPA can then request git to do a single-branch clone.

Ram

This won't work (at least for now) – git mirrors the main SVN repo.