====== 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 =====
* http://sourceforge.net/project/showfiles.php?group_id=13833
==== SVN via SourceForge ====
The general commands to check out a module (archtypes, client, maps, server map editor, et al) is the following:
* svn co https://svn.code.sf.net/p/crossfire/code/arch
* svn co https://svn.code.sf.net/p/crossfire/code/client
* svn co https://svn.code.sf.net/p/crossfire/code/maps
* svn co https://crossfire.svn.sourceforge.net/svnroot/gridarta
* svn co https://svn.code.sf.net/p/crossfire/code/server
==== 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.
* Development , recent updates and latest features == trunk
* Tested & stable features, bug fixes, etc. == next release branch
* Critical bugfixes on released version == previous release branch(es)
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.
* Branch:
* svn co https://svn.code.sf.net/p/crossfire/code/arch/branches/1.12
* svn co https://svn.code.sf.net/p/crossfire/code/client/branches/1.12
* svn co https://svn.code.sf.net/p/crossfire/code/maps/branches/1.12
* svn co https://svn.code.sf.net/p/crossfire/code/server/branches/1.12
* Trunk:
* svn co https://svn.code.sf.net/p/crossfire/code/arch/trunk
* svn co https://svn.code.sf.net/p/crossfire/code/client/trunk
* svn co https://svn.code.sf.net/p/crossfire/code/maps/trunk
* svn co https://svn.code.sf.net/p/crossfire/code/server/trunk
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.