Working with SVK

From Armagetron
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Sections: Installing the Game | Playing the Game | Competition Hub | Server Administration | Extending Armagetron Advanced | Development Docs


SVK is a decentralized version control system built on top of the Subversion back-end.

Installing

Mac OS X

Setting up the Mirror

1. Grab the AA subversion repository. I encountered SVN errors when checking out the entire repository, so I instead grabbed it using rsync.

$ mkdir armagetronad-svn
$ RSYNC_PROXY=rsync-svn.sourceforge.net:80 \
  rsync -a rsync-svn-a::svn/armagetronad/* ./armagetronad-svn

2. Setup the depotmap if this is your first time using svk.

$ svk depotmap --init

3. Setup the svk mirror.

$ svk ls file://$HOME/armagetronad-svn/

Options I chose:

base URI
default
depot path
//mirror/armagetronad
mirror to
most recent revision — h)ead

4. Relocate the mirror to point at the SourceForge.net SVN repository.

$ svk mirror --relocate \
  //mirror/armagetronad \
  https://svn.sourceforge.net/svnroot/armagetronad
    
$ svk mirror --list
  Path                    Source
  ============================================================
  //mirror/armagetronad   https://svn.sourceforge.net/svnroot/armagetronad

5. Sync-up the mirror.

$ svk sync //mirror/armagetronad

Hacking Away

1. Create a local branch and check it out.

$ svk cp -p //mirror/armagetronad/armagetronad/trunk/armagetronad //local/armagetronad
$ svk co //local/armagetronad

2. Hack away...

3. Merge the changes from you branch back into the AA SVN tree.

If you want to push the changes as individual patches (not sure if --log is needed)
$ svk smerge --incremental --log //local/armagetronad //mirror/armagetronad/armagetronad/trunk/armagetronad
If you want to push as one big patch
$ svk merge //local/armagetronad //mirror/armagetronad/armagetronad/trunk/armagetronad

Sections: Installing the Game | Playing the Game | Competition Hub | Server Administration | Extending Armagetron Advanced | Development Docs