wiki:GitMigration

Migrating GRASS code repository from SVN to git

Background and aims

SVN has served the GRASS project well as a version control system for numberous years now. The project has estabished routines and infrastructure (code repository, ticketing system, developer wiki) connected to SVN. However, with an increasing number of Open Source developers using git (and here especially the success of github), interest in moving from SVN to git has been expressed.

Reasons to consider moving from SVN to git are to:

Other OSGeo projects already moved (even if some only partly)

Other relevant projects:

Like other OSGeo projects GRASS has already a git-mirror-repository for CI:

In addition GRASS has a team within the OSGeo organisation on github.com:

Possible migration of GRASS GIS source code to git has been discussed at community sprints in 2017 and 2018. At the community Sprint in Bonn 2018 first tools for moving content from trac (SVN) to git were developed (mainly by Martin Landa): https://trac.osgeo.org/grass/browser/grass-addons/tools/svn2git?order=name

See also: https://trac.osgeo.org/grass/ticket/3722

Choosing a git plattform

Moving to git involves the question which git platform to move to. So, in addition to technical work, strategical decisions have to be made.

Available options

Most common options / git platforms are:

  • github (still the most popular, yet proprietary, system with online hosting service)
  • gitlab (another plattform with online hosting service and increasing popularity esp. after Microsoft bought github)
  • bitbucket (another popular plattform with online hosting service)
  • gitea/gogs ("painlessly selfhosted" plattform, hosted by OSGeo SAC)

Yet, there are plenty of other options: https://wiki.osgeo.org/wiki/GitHostingSoftware

And there are several comparisons of available git platforms available online:

GitLab? compared to other DevOps? tools

Risk of "vendor lock in"

See this gitlab-ticket regarding migration from trac to gitlab: https://gitlab.com/gitlab-com/support-forum/issues/2765

And see this manual for moving from SVN to gitlab: https://docs.gitlab.com/ee/user/project/import/

It seems also possible / relatively straight forward to (e.g. later) move from gitlab.com to a selfhosted gitlab instance: https://docs.gitlab.com/ee/user/project/import/gitlab_com.html

Requirements and criteria

Anyway, a first step in order to chose from the available options is to define a list of criteria (here requirements and features) of the git platform to move to. For OSGeo a list of requirements has been compiled: https://wiki.osgeo.org/wiki/GitServiceRequirement Yet, that list does not necessarily reflect all or the most important requirements of the GRASS project and the motivation for moving to git...

  • Sign in using OSGeo Userid
  • Autonomously create and manage teams
  • Autonomously create and manage repositories
  • Create private repositories (for software vulnerability testing, etc.)
  • Import tickets from Trac
  • Import tickets from Redmine
  • Comment tickets via email
  • Comment/close tickets via commit log
  • SVN->GIT sync - (Mirroring existing SVN repository) see:/ticket/1654
  • Integration with CI service (hosted eg. Travis CI, AppVeyor?, GitLab? CI), self-hosted (eg. Buildbot, ?))
  • ... (Please add)

Next steps

User Survey

5 Feb 2019:

20 Feb 2019:

git test migration

5 Feb 2019:

  • svn -> git test migration ongoing, see #3722
Last modified 2 days ago Last modified on Feb 20, 2019 6:00:29 AM