[OpenWrt-Devel] SVN to GIT transition

Felix Fietkau nbd at openwrt.org
Mon Oct 12 08:04:09 EDT 2015

On 2015-10-12 11:44, Javier Domingo Cansino wrote:
>     that reminded me to check, and indeed, I only use
>     git://git.openwrt.org/openwrt.git
>     <http://git.openwrt.org/openwrt.git> anyway :)
>> I do use the openwrt mirror github hosts, and I suppose is mirroring
> that one.
> I think it's already given all the points in Git vs SVN, so I will speak
> about self hosting and git interfaces.
> I suppose many of you have already worked with Github, Gitlab, gitolite
> and gerrit for hosting. I reviewed a book on gitolite a few years ago, I
> have been using Github for past 5 years, and made some Gitlab CE
> self-hosted instalations.
> First of all, I don't like gerrit because of the workflow it imposes and
> the limitations compared to Gitlab/Github. gitolite doesn't have a web
> interface, is just a git hosting tool, which btw is used for linux dev
> since kernel.org <http://kernel.org> was compromised. And gitlab/github
> are pretty similar.
> If you are not willing to change the workflow, nor giving any kind of
> enhanced experience, you should probably go with gitolite. It's easy to
> manage, and it allows you to manage permissions per-branch, and does
> even let you deny pushes depending on the path you modify. Which I have
> read is interesting for maintainers. It's a really extensible and
> complete hosting tool.
FYI, we are already using gitolite on git.openwrt.org.

> However, I firmly believe that if you are going through any kind of
> changing process, you should probably stick with the most accessible tool.
> I would propose you installed/hired Gitlab, changed the project to git,
> continue with the same workflow, and then decide a proper workflow for
> your project while you get accustomed to the new interface. Later, you
> can switch to using the gitlab issues / forks / merge requests.
While it works fine for packages, I don't think the pull request stuff
is very usable for OpenWrt core, which has a more centralized
development model.
One reason why we haven't moved the main repo to git yet is that we lose
the advantage of having revision numbers that propagate to the firmware,
even with builds from a forked repository where some commits have been
added on top.
If we do everything in git, we either have to constantly remember to tag
revisions, or we will lose valuable information when users report bugs
with forked repos.
I also happen to like linear history very much, and SVN enforces that ;)

> There are tools to migrate issues between systems, so if desired,
> historical issues could be maintained.
> ​I would however not use submodules. You can just rip off the kernel and
> treat it as another project, which in my opinion is the best way of
> handling multiple projects, rather than including submodules for everything.
I still believe for our maintenance process it's a bad idea to maintain
the kernel as a separate git repository. With generic changes, it's easy
to lose track of what patch has been applied in which branch, and
syncing them can be annoying with rebases.
Also, pulling changes is going to be confusing for users as well, since
we will have to constantly rebase branches.

- Felix
openwrt-devel mailing list
openwrt-devel at lists.openwrt.org

More information about the openwrt-devel mailing list