[Live-demo] [live-demo] Migration to git

Angelos Tzotsos gcpp.kalxas at gmail.com
Sat Jan 31 10:09:29 PST 2015


Hi all,

We have been discussing this for a couple of years and I think it is 
time to seriously start considering a strategy for migrating to Git as 
our source control system [1].
If someone is unfamiliar with Git, there are great resources online 
pointing to why we should use Git instead of svn [2] [3] [4].

Git is a free and open source distributed revision 
control<http://en.wikipedia.org/wiki/Distributed_revision_control> 
system with an emphasis on speed, data 
integrity,^<http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-integrity_goals-7> 
and support for distributed, non-linear 
workflows.^<http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-linusGoogleTalk-8> 
Git was initially designed and developed by Linus Torvalds for Linux 
kernel<http://en.wikipedia.org/wiki/Linux_kernel> development in 2005, 
and has since become the most widely adopted version control system for 
open source software 
development.<http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-ianskerrett.wordpress.com-9>

Many people tend to confuse Git with GitHub [5] which is an excellent 
code collaboration service (most open source projects use it today, even 
Linux kernel keeps a code mirror there) but it is not available under an 
open source license.

This is not a problem for us. Git is a distributed source control 
system, which means that there is no need for a centralized server as in 
subversion. Every developer has a copy of the whole repository 
(including history). In order to keep our Subversion-style workflow 
(store commits to a reference repository), we can use something like 
GitLab [6] or something even simpler [7] on an OSGeo server to host git 
repositories. Also, there is an OSGeo GitHub account [8] that we could 
use as a mirror too...

Regarding the actual port, I propose that we should do this smoothly:

1. Create an OSGeoLive-docs repository (with full svn history)
2. Start building our docs as a deb package based on Git repository. The 
Git repository can be synchronized with our svn for a while until we 
abandon svn.
3. Migrate our translation process to Git or even use excellent 
translation tools like Transifex [9] (GeoServer and other projects 
already use it for translations) [10]
4. Create an OSGeoLive repository (with svn history, without docs)
5. Migrate our iso build scripts to use the Git repositories (with 
branch and tag support)
6. Keep Git and svn synchronized for a while until we abandon svn

I have already done some work for step 1:
There is an Git-svn mirror of our docs available here [11].
In order to be able to accurately hold a git history, we need to provide 
a name and e-mail for every contributor.
This is why I have committed this transformation file [12] that I use to 
rebuild the history on the Git side, so that we can have the complete 
history of commits [13] (for now I just committed my own details as an 
example here [14]).

I would like to ask everyone to add their name and e-mail (that they 
already use on their Git projects). We could extract this information 
from our contributors.csv file for you if you don't want to provide this 
info again.

Regarding our ticket system, there is a Trac plugin for Git available 
that we could use [15].
Resources for the migration can be found here: [16] [17] [18]

Sorry for the long e-mail.
Lets have a discussion here before we vote.

This proposal is for AFTER we release 8.5 final ;)

Best,
Angelos

[1] http://git-scm.com/
[2] http://git-scm.com/about/
[3] https://www.youtube.com/watch?v=4XpnKHJAok8
[4] http://git-scm.com/book/en/v2
[5] https://github.com
[6] https://about.gitlab.com/
[7] https://git.kernel.org/cgit/
[8] https://github.com/OSGeo
[9] https://www.transifex.com/
[10] https://www.transifex.com/projects/p/geoserver/
[11] https://github.com/kalxas/OSGeoLive-docs
[12] 
http://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/doc/contributors-transform-git.txt
[13] https://github.com/kalxas/OSGeoLive-docs/graphs/contributors
[14] http://trac.osgeo.org/osgeo/changeset/12235
[15] http://trac.edgewall.org/wiki/TracGit
[16] http://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion
[17] 
http://stackoverflow.com/questions/79165/migrate-svn-repository-with-history-to-a-new-git-repository
[18] http://john.albin.net/git/convert-subversion-to-git

-- 
Angelos Tzotsos
Remote Sensing Laboratory
National Technical University of Athens
http://users.ntua.gr/tzotsos

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/osgeolive/attachments/20150131/3a124834/attachment.html>


More information about the Osgeolive mailing list