<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body text="#000000" bgcolor="#FFFFFF">
Hi all,<br>
<br>
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].<br>
If someone is unfamiliar with Git, there are great resources online
pointing to why we should use Git instead of svn [2] [3] [4].<br>
<br>
Git is a free and open source distributed revision control<a
href="http://en.wikipedia.org/wiki/Distributed_revision_control"
title="Distributed revision control"></a> system with an emphasis
on speed, data integrity,<sup id="cite_ref-integrity_goals_7-0"
class="reference"><a
href="http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-integrity_goals-7"><span></span></a></sup>
and support for distributed, non-linear workflows.<sup
id="cite_ref-linusGoogleTalk_8-0" class="reference"><a
href="http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-linusGoogleTalk-8"><span></span></a></sup>
Git was initially designed and developed by Linus Torvalds for Linux
kernel<a href="http://en.wikipedia.org/wiki/Linux_kernel"
title="Linux kernel"></a> development in 2005, and has since
become the most widely adopted version control system for open
source software development.<a
href="http://en.wikipedia.org/wiki/Git_%28software%29#cite_note-ianskerrett.wordpress.com-9"><span></span></a><br>
<br>
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.<br>
<br>
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...<br>
<br>
Regarding the actual port, I propose that we should do this
smoothly:<br>
<br>
1. Create an OSGeoLive-docs repository (with full svn history) <br>
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.<br>
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]<br>
4. Create an OSGeoLive repository (with svn history, without docs)<br>
5. Migrate our iso build scripts to use the Git repositories (with
branch and tag support)<br>
6. Keep Git and svn synchronized for a while until we abandon svn<br>
<br>
I have already done some work for step 1:<br>
There is an Git-svn mirror of our docs available here [11].<br>
In order to be able to accurately hold a git history, we need to
provide a name and e-mail for every contributor.<br>
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]).<br>
<br>
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.<br>
<br>
Regarding our ticket system, there is a Trac plugin for Git
available that we could use [15].<br>
Resources for the migration can be found here: [16] [17] [18]<br>
<br>
Sorry for the long e-mail. <br>
Lets have a discussion here before we vote.<br>
<br>
This proposal is for AFTER we release 8.5 final ;)<br>
<br>
Best,<br>
Angelos<br>
<br>
[1] <a class="moz-txt-link-freetext" href="http://git-scm.com/">http://git-scm.com/</a><br>
[2] <a class="moz-txt-link-freetext" href="http://git-scm.com/about/">http://git-scm.com/about/</a><br>
[3] <a class="moz-txt-link-freetext" href="https://www.youtube.com/watch?v=4XpnKHJAok8">https://www.youtube.com/watch?v=4XpnKHJAok8</a><br>
[4] <a class="moz-txt-link-freetext" href="http://git-scm.com/book/en/v2">http://git-scm.com/book/en/v2</a><br>
[5] <a class="moz-txt-link-freetext" href="https://github.com">https://github.com</a><br>
[6] <a class="moz-txt-link-freetext" href="https://about.gitlab.com/">https://about.gitlab.com/</a><br>
[7] <a class="moz-txt-link-freetext" href="https://git.kernel.org/cgit/">https://git.kernel.org/cgit/</a><br>
[8] <a class="moz-txt-link-freetext" href="https://github.com/OSGeo">https://github.com/OSGeo</a><br>
[9] <a class="moz-txt-link-freetext" href="https://www.transifex.com/">https://www.transifex.com/</a><br>
[10] <a class="moz-txt-link-freetext" href="https://www.transifex.com/projects/p/geoserver/">https://www.transifex.com/projects/p/geoserver/</a><br>
[11] <a class="moz-txt-link-freetext" href="https://github.com/kalxas/OSGeoLive-docs">https://github.com/kalxas/OSGeoLive-docs</a><br>
[12]
<a class="moz-txt-link-freetext" href="http://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/doc/contributors-transform-git.txt">http://trac.osgeo.org/osgeo/browser/livedvd/gisvm/trunk/doc/contributors-transform-git.txt</a><br>
[13] <a class="moz-txt-link-freetext" href="https://github.com/kalxas/OSGeoLive-docs/graphs/contributors">https://github.com/kalxas/OSGeoLive-docs/graphs/contributors</a><br>
[14] <a class="moz-txt-link-freetext" href="http://trac.osgeo.org/osgeo/changeset/12235">http://trac.osgeo.org/osgeo/changeset/12235</a><br>
[15] <a class="moz-txt-link-freetext" href="http://trac.edgewall.org/wiki/TracGit">http://trac.edgewall.org/wiki/TracGit</a><br>
[16]
<a class="moz-txt-link-freetext" href="http://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion">http://git-scm.com/book/en/v1/Git-and-Other-Systems-Git-and-Subversion</a><br>
[17]
<a class="moz-txt-link-freetext" href="http://stackoverflow.com/questions/79165/migrate-svn-repository-with-history-to-a-new-git-repository">http://stackoverflow.com/questions/79165/migrate-svn-repository-with-history-to-a-new-git-repository</a><br>
[18] <a class="moz-txt-link-freetext" href="http://john.albin.net/git/convert-subversion-to-git">http://john.albin.net/git/convert-subversion-to-git</a><br>
<br>
<pre class="moz-signature" cols="72">--
Angelos Tzotsos
Remote Sensing Laboratory
National Technical University of Athens
<a class="moz-txt-link-freetext" href="http://users.ntua.gr/tzotsos">http://users.ntua.gr/tzotsos</a></pre>
</body>
</html>