Working with SVK

From Armagetron
Revision as of 14:21, 24 August 2021 by Cadillac (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

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