Youtube Sonic TAS community

Impossible is possible

You are not logged in.

#1 2013-04-01 21:39:34

From: Maykop, RU · Jakarta, ID
Registered: 2012-10-06
Posts: 287

Version control software: Subversion

Expert TASers often use so-called version control systems to store their GMV files. The version control system (VCS) is something like a shared folder, which keeps the complete history of your changes. In this post I will try to explain why such systems are very useful for a TASer (and for TAS communities).

The VCS is not simply a shared folder. VCS is a server-side storage which allows members to syncronize it’s content with some directory in their local file system. When a member makes some modification (for example, writes a function in a Lua script), the changes are sent to the server, and the other members are able to fetch those changes in one single mouse click (or shell command). Also the VCS server logs history of the editions. If you made a wrong edition, you can cancel it at any time.

There are many VCS available, but the most popular two are Subversion and git. Git is a lot more powerful, but it may be complex to learn from scratch, and most of his features you probably will never use. So the best choice for a TASer is Subversion.

To be short, let’s begin with a simple example. In this example me, feeuzz and Qwerty work on Sonic 2: Tribute TAS. Project manager is feeuzz, I wrote some Lua script for it. Let’s see it step by step.

1. feeuzz checks out the YSTC repository;
2. feeuzz creates a folder named «projects/sonic2-tribute»;
3. feeuzz starts TASing and saves his movie as «projects/sonic2-tribute/sonic-anypercent.gmv»;
4. feeuzz cannot finish the first act because of some trick he cannot pull off. However, the beginning is done very well, so feeuzz decides to add it under version control
5. feeuzz performs commit. All modifications are sent to the server
6. Qwerty knows how to perform the trick. He wants to help to finish first act. He already had working copy of repository on his computer, so he simply updates it
7. Qwerty opens «projects/sonic2-tribute/sonic-anypercent.gmv» and beats the level with good result.
8. Meanwhile, WST runs update too, then adds the Lua script he wrote and performs commit.
9. Qwerty is going to perform commit, but his Subversion client notifies him, that his working copy is not up-to-date. He runs update and then commit.

Tomorrow I will tell you more, enough for today.

Sonic the EDGEhog has been obsoleted by Amy the LTEhog ©


#2 2013-04-02 02:30:13

Registered: 2012-10-07
Posts: 249

Re: Version control software: Subversion

That's clear. For an example, it's clear.

Sonic is the fastest thing alive, and Hyper Sonic is the fastest thing.


#3 2013-04-04 19:50:25

From: Maykop, RU · Jakarta, ID
Registered: 2012-10-06
Posts: 287

Re: Version control software: Subversion

So, Subversion is version control software. First thing that you may want to know is: where to get it (Subversion repository and client program). Subversion repository hosting is provided by Google Code. For example, this is Sonikkustar’s TAS repository.
It’s also possible for us to have our own Subversion server at, if we want. Subversion server is very easy to install and configure. However, I would recommend using Google Code.

Another question is Subversion client. For Linux users I would recommend using command-line client, which can be installed by executing the following command (Ubuntu):

sudo apt-get install subversion

For Windows I strongly recommend using TortoiseSVN, which can be downloaded either from it’s official site or from our file server (direct link).

Because 75% of the visitors to our forum use Linux (according to Yandex.Metric calculations), I start my detailed explanation in assumption that the operating system used is some kind of Linux. After that, I will dedicate some time to make instructions about TortoiseSVN as well.

First, the repository should be created. I’ve just created one on Google Code. I will slowly move all of my TAS projects there, so may do you. The project’s page is here. The repository itself has address

The first operation that you need to do with the repository is, as mentioned above, checkout. In terms of Subversion this operation means initial downloading of the repository from the server. Once you’ve performed checkout, you have a working copy. Working copy is a «remote instance» of repository, which may be commited — sent back to the repository. When you perform commit, only the modifications are transferred — it saves lots of traffic on huge projects.

An example work with a repository looks like this:

svn checkout ystc-projects --username ******
cd ystc-projects
mkdir serious
mkdir just-for-fun
svn add serious just-for-fun
svn commit

„svn add” operation means that you add the selected files or, in our case, folders, under version control. If you forget to add some files, they will not be tracked. It’s worth to notice that you should not add garbage: once added, it is stored in the repository forever, even if you delete it later (it’s kept for history purposes — to make you able to restore state). So you have something like a „tool-assisted folder”: you can do savestate/restore.

„svn commit” sends data to the server. You’ll be asked for your Google Code password while running this command. Once you’ve provided a password, you will not have to enter it again (all Subversion clients, including command-line utility, can store passwords forever).

For the beginning I do not give anyone of you writing permission in that repository. Try to create a working copy to see my runs being updated from time to time.

svn checkout ystc-projects-read-only

Sonic the EDGEhog has been obsoleted by Amy the LTEhog ©


Board footer

Powered by FluxBB