Using SVN for GNOME Translators
Update 3rd June 2009: This is a very old post when GNOME was using SVN for the VCS (now we use git). My blog theme does not show the year, so I am writing this in case you are confused by the post.
If you are a translator, the work is further simplified. You would normally new SVN to get a copy of the source code of a package so that you can extract the translation messages of the UI or the documentation. In addition, in some cases you can provide localised images and screenshots.
First of all, if you do not have an account on SVN yet, you need to connect using Anonymous access. You still have all access, however if you want to upload any translations would need to give them to someone else who has such an SVN account.
Furthermore, the source code of a package is often branched during a GNOME release so that when there is ongoing development, the released version of the package is not affected. Branches usually have a name similar to gnome-2-18. The not-branched branch is called trunk (or HEAD, in CVS lingo), where all cutting-edge development usually happens.
To checkout (here checkout means to obtain a copy) the source code of a package.
Checkout trunk as anonymous
svn checkout http://svn.gnome.org/svn/gnome-utils/trunk my-trunk-gnome-utils
Checkout trunk as simos
svn checkout svn+ssh://firstname.lastname@example.org/svn/gnome-utils/trunk my-trunk-gnome-utils
Checkout branch called “gnome-2-18” as anonymous
svn checkout http://svn.gnome.org/svn/gnome-utils/branches/gnome-2-18/ gnome-utils-stable
Checkout branch called “gnome-2-18” as simos
svn checkout svn+ssh://email@example.com/svn/gnome-utils/branches/gnome-2-18 gnome-utils-stable
To commit you changes means that you send your changes upstream to the project.
In order to commit, you enter the directory you checked out and you run
svn commit -m “Updated Greek translation”
The changes you make typically include updated your language’s LL.po file, and also updating the ChangeLog file.
You cannot commit in a anonymous checkout. The system knows that it’s you when you are commiting because the checkout command saved the username you used earlier.
In the SVN commands, you can abbreviate checkout with co, and commit with ci. Sometimes this leads to the most common newbie error; you tend to think that co is for commit. In practice you cannot make a mess though, as the command line parameters between the two actions are very different, and the command will fail.