What can Git do for translators?



Hi All,

There is a discussion on the gnome developer mailing lists regarding a
possible move
from Subversion (SVN) to a Distributed Version Control System (DVCS)
such as git, which is already used for the Linux kernel, Perl, some
libraries such as clutter.
This post is to help contribute to the discussion.

If you are a GNOME Foundation member, you probably got a survey e-mail
in December on the issue.

The survey results are at
http://blogs.gnome.org/newren/2009/01/03/gnome-dvcs-survey-results/
http://mces.blogspot.com/2009/01/gnome-dvcs-survey.html

The GNOME dev discussion takes place at
http://mail.gnome.org/archives/desktop-devel-list/2009-January/thread.html#00003
The discussion is somewhat heated, so it's no place for translators to
post about.

If a move eventually takes place, it will require time and effort, so
it would not happen within the next six months.

Moving from Subversion (SVN) to a DVCS such as git will have lots of
benefits for the developers, which is very important. Normally, we
expect the KDE project to try these things out first but this time it
appears they are sticking with SVN.

In general, learning a DVCS such as git is a new modern skill. There
are books available,
http://book.git-scm.com/ and you can try it out with a free repository
(100MB) at https://github.com/ or at Gitorious, http://gitorious.org/

The big question is, how would a DVCS affect the GNOME localisation workflows?
Are we going to keep the same easy facilities? Is a DVCS going to make
some things easier?
Is there another big project which supports localisation to many
languages, and it uses a DVCS?

Scenario A
=> Using command line tools, we add a translation to the main repository.

Assume the repository is git://git.gnome.org/gnome-games.git
we make a local copy by 'cloning' the repository ('checkout' is
something different in git)

git clone git://git.gnome.org/gnome-games.git

This would create a very big tree, because it would make a full
offline copy, with all the history for the last ten years or so. When
we use SVN, a checkout of gnome-games is 124MB. The approximate size
of a 'git clone' should be quite larger. My test with 'git-svn clone'
was not conclusive (due to the way it works, it is very slow, I
stopped after an hour, which it downloaded 74MB).

It might be possible to use the --depth parameter in 'git clone',
which can limit how far back the history will go to. Reading the man
page for git-clone, it is not clear if we would be able to 'push' (or
'commit' per SVN) the changes back to the tree.

       --depth <depth>
           Create a shallow clone with a history truncated to the
specified number of revisions. A shallow repository has a number of
limitations (you
           cannot clone or fetch from it, nor push from nor into it),
but is adequate if you are only interested in the recent history of a
large project
           with a long history, and would want to send in fixes as patches.

Scenario B
damned-lies and vertimus should be rather easy to convert to git,
since they would simply need to replace 'svn checkout' with 'git clone
--depth 0'.
Is that the case?

Are there any other issues we need to think about?

Simos


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]