Table of Contents

Downloading Crossfire

The current version of the Crossfire server is 1.70.0 as of 2012-Mar-22, however there have been updates available via SVN since then.

SourceForge Releases

SVN via SourceForge

The general commands to check out a module (archtypes, client, maps, server map editor, et al) is the following:

Trunk & Branch:

You will also notice that there are directories labeled as trunk and branch.

The trunk is the latest development changes which may or may not go into the next 1.x release.

The 1.x branches fall in two categories; for those that were already released (1.11 as of this writing), the branch is for critical bugfixes to that release. For future releases (1.12 and 1.13 as of this writing), this is where changes from trunk are merged as they're tested enough, in preparation for the future release.

Notice: It is highly recommend that you use a trunk mapset with a trunk server and a branch mapset with a branch server as incompatible changes may occur. Meaning a map in trunk may only work with the trunk server and vice versa. (Same goes for different 1.x releases.)

Trunk & Branch Commands:

The commands to check out a specific directory is the following:

Note: The commands, below, presume you are in the directory where the archetypes, client, maps or server currently reside.

It is also possible to checkout files from SVN and have them install to a remote directory. This is accomplished by adding the file path to the end of the SVN command.

For instance: svn co https://svn.code.sf.net/p/crossfire/code/maps/branches/1.12 /path/to/map/directory/

Or, more specifically: svn co https://svn.code.sf.net/p/crossfire/code/maps/branches/1.12 /share/crossfire/maps/

This would check out the latest changes to maps 1.x branch and place them in the /share/crossfire/maps/ directory.

Browse the SVN Repository

Latest SVN changes and history is available at: http://crossfire.svn.sourceforge.net/viewvc/crossfire/

Switching an old 1.x checkout

Until January 2008, the way the project was using branches was slightly different. So people looking for small updates and bugfixes to 1.x code would be following a branch called 1.x (eg /maps/branches/1.x). Now, the branches are actual release numbers: 1.11, 1.12, 1.13. Doing an update in such a checkout would simply fail, with the not so helpful message:

svn: Target path does not exist

So if you use a checkout like that, here's the recommended thing to do:

First you should make a choice. Do you want to follow the supported, released version, and get eventual bugfixes for that? Or do you want to follow the work-in-progress for the next release?

If you want to follow the supported, released version, do this:

svn switch https://svn.code.sf.net/p/crossfire/code/$COMPONENT/branches/1.11 .

where $COMPONENT is the thing you're following – server, client, arch, maps. So for example:

% cd server
% svn switch https://svn.code.sf.net/p/crossfire/code/server/branches/1.11 .

But it would probably be even better to remove your checkout, and instead create one from the “stable” export:

svn co https://svn.code.sf.net/p/crossfire/code/stable/ crossfire

This will get all the components, on the supported version. It has the significant benefit that when 1.12 is released, you don't have to run “switch” again; you will automatically start following that one.

On the other hand, if you want to follow the work-in-progress 1.x release (more or less equivalent to the old branches/1.x):

svn switch https://svn.code.sf.net/p/crossfire/code/$COMPONENT/branches/1.12 .

for example:

% cd server
% svn switch https://svn.code.sf.net/p/crossfire/code/server/branches/1.12 .

But it would probably be even better to remove your checkout, and instead create one from the “next” export:

svn co https://svn.code.sf.net/p/crossfire/code/crossfire/next/ crossfire-alpha

This will get all the components, on the supported version. It has the significant benefit that when 1.12 is released, you don't have to run “switch” again; you will automatically start following 1.13 instead.