This wiki has been moved to https://github.com/SuperTux/wiki into the mediawiki branch.
SuperTux development is coordinated with the help of the Subversion version control system. In a nutshell, it's a file-storing facility that can be used by multiple users simultaneously, keeping track of changes and archiving old versions of files. You can find out more about Subversion in general on their homepage.
Getting the data (anonymous read-only access)
Anonymous read access to the repository is granted to everybody. Once you have installed Subversion, all you have to do to get your hands on the data is to use the following command:
svn checkout http://supertux.lethargik.org/svn/supertux/trunk/supertux
This will create a new directory named supertux which contains the latest versions of the SuperTux source code and data. Once this is complete, you can use
inside the supertux directory to update to the latest version in the repository. This will only download changed files to save bandwidth.
Locations inside the Subversion repository
Checking out the path above will get you all you need to contribute to SuperTux. However, there are a few more paths in the repository containing other useful SuperTux-related things.
|http://supertux.lethargik.org/svn/supertux/trunk/media||Additional media files, including source files for audio and graphics|
|http://supertux.lethargik.org/svn/supertux/trunk/supertux-sharp||Official SuperTux level editor that runs under both Mono and MS .NET.|
|http://supertux.lethargik.org/svn/supertux/branches/supertux/0_1_x||SuperTux Milestone 1 branch|
|http://supertux.lethargik.org/svn/supertux/branches/supertux/0_3_x||SuperTux Milestone 1.9 branch|
Once you have done some own changes on the repository and want to contribute them to the project, you have to create a patch (since the public repository is read only). The following steps walk you through the process of doing so:
At first you should use
which will print you a list of files with a prefix letter. M means you have changed the file, C means there has been a conflict between your changes and changes from someone else in the repository, and ? means the file is ignored by the version control.
You should fix all conflicts (by editing the conflicted file, then using svn resolved <filename>) and use svn add <filename> to add files that you created and want to add. svn remove will delete files from the repository. (Note that files are never really deleted; you may always check out a former revision when the file still existed.) Finally you can create a patch by using
svn diff > mypatch.patch
This will create a file mypatch.patch that contains all changes you did to the repository. You should upload your patch to the bug tracker.
If you just want to browse through the source a bit, then you can use the Repository HTTP Interface which should work well with your web browser.
Developer SVN access
If you have submitted some good patches and want to get actively involved in the SuperTux project, contact us for write access to the repository. You will then have to issue the following command in the supertux directory:
svn switch --relocate http://supertux.lethargik.org/svn/supertux/trunk/supertux \ svn+ssh://<your_lethargik_username>@lethargik.org/home/supertux/svn/supertux/trunk/supertux
After running an
svn update to make sure everything went smoothly, you can start checking in your changes:
svn commit -m "Totally changed src/main.cpp to implement HTCPCP!"
If you only want to commit changes to some files, add their names to the end of the command.
Move from BerliOS
Contact sik0fewl to get developer access if you used to have it on BerliOS. Also sik0fewl is responsible for adding new developers (but other developers has to agree with it first).
When switching to the new svn from berlios (using switch --relocate) make sure to be on revision 4542. NOT any later revision (or you will get a checksum error). You can use svn update -r4542 to downgrade.