Difference between revisions of "HowTo:Checkout SVN"

From VsWiki
Jump to: navigation, search
m (Linux Clients: Updated SVN download URL to follow with the new PROJECT.svn.sf.net format)
m (Determining when compiling is required: change external-type links to internal pages to regular wikilinks)
 
(92 intermediate revisions by 23 users not shown)
Line 1: Line 1:
 +
{{Languages|En|HowTo:Checkout SVN}}
 
{{NAV_Manual |
 
{{NAV_Manual |
 
| previous=[[HowTo:Edit News|Edit News]]
 
| previous=[[HowTo:Edit News|Edit News]]
 
| up=[[HowTos]]
 
| up=[[HowTos]]
| next=[[HowTo:VCPP Compiling|Compiling with VCPP]]
+
| next=[[HowTo:Checkout SVN (Ubuntu Linux)|Checkout SVN (Ubuntu Linux)]]
 
}}
 
}}
 
----
 
----
 +
 +
NOTE:Recently the SVN location of the data directory has changed.  Use svn -switch to fix this.
 +
 +
 
If you're interested in an experimental version of Vega Strike, then SVN is what you'll be looking at.
 
If you're interested in an experimental version of Vega Strike, then SVN is what you'll be looking at.
 +
 +
 +
'''Executive summary'''
 +
 +
Subversion, or SVN, is a mechanism by which developers can keep track of changes to their code and distribute these changes to the public in real time. This allows people to take advantage of software as it is being developed, between official releases.
 +
 +
[[HowTo:Checkout_SVN#Windows_Clients|Windows users]] can use an [[HowTo:Checkout_SVN#Tortoise_SVN|SVN client]] to check out the "win32" module, which contains game data and windows binaries.
 +
 +
[[HowTo:Checkout_SVN#Linux_Clients|Linux]] and [[HowTo:Checkout_SVN#Mac_OS_X_Clients|Mac OS X]] users must use an SVN client to check out the vegastrike module as well, which contains source code for them to compile. (Note that compiling Vega Strike on Mac OS X is considered very difficult.)
  
 
=What is SVN?=
 
=What is SVN?=
Line 11: Line 25:
  
 
Downloading ("checking out") and compiling the SVN-version often gives you access to features not included in the latest stable release of the program. SVN-based versions can be unstable and may not even work at all, but may hold advantages compared to stable versions.
 
Downloading ("checking out") and compiling the SVN-version often gives you access to features not included in the latest stable release of the program. SVN-based versions can be unstable and may not even work at all, but may hold advantages compared to stable versions.
 +
 +
==Structure==
 +
Unlike a CVS repository, the top level of an SVN repository contains more than just the trunk. Vega Strike's SVN repository follows the standard layout, so the SVN root looks like this:
 +
* '''branches''' - Independent copies of some or all of the trunk code. A developer making major changes, such as the ogre branch or major code cleanup will usually make a branch so they can keep track of their progress without breaking the trunk code for everyone else. These changes eventually are merged back into the trunk.
 +
* '''tags''' - Revisions which have been marked. For instance, a tag might be made for a stable release so that svn users can update to it via the ''svn sw'' command. The VS developers like to use tags to mark milestones in the code, such as before or after a major change, so you'll see a lot of tags.
 +
* '''trunk''' - The main trunk code, as would be seen in the root of a CVS repository. This contains a number of modules filled with code and data.
  
 
==Modules==
 
==Modules==
 
Vega Strike's SVN repository holds several subdirectories, which can either be checked out separately or altogether. The most notable ones are included below.
 
Vega Strike's SVN repository holds several subdirectories, which can either be checked out separately or altogether. The most notable ones are included below.
* '''data4.x''' - data files of the game. This consists mainly of models, textures and backgrounds. Required to play the game.
+
 
* '''data5.x''' - {{Fixme}} Data for the upcoming version 5.
+
* '''data''' - data files of the game. This consists mainly of models, textures and backgrounds. Required to play the game.
* '''music''' - music for the game. The contents of this directory should go in [datadir]/music.
+
* '''hqtextures''' - Optional High Quality Texture pack
* '''vegastrike''' - the game base code.
+
* '''win32''' - Windows Binaries as well as includes an "external" to the data directory.
* '''history''' - Discriptions of factions and species.
+
* '''mac''' - Macintosh Package, as well as an "external" to the data directory.
 +
* '''masters''' - The original master files that created the game data (original meshes and uncompressed textures).
 +
* '''history''' - Old descriptions of factions and species.
 +
* '''modtools''' - Tools to aid creation and modification of game files (campaigns and units)
 +
* '''translations''' - Translations of Vega Strike data files into other languages.
 
* '''vega-proj''' - Deprecated Visual C++ 6 projects. (See [[HowTo:VCPP_Compiling#Visual_C.2B.2B_6.0_.28deprecated.29 here]])
 
* '''vega-proj''' - Deprecated Visual C++ 6 projects. (See [[HowTo:VCPP_Compiling#Visual_C.2B.2B_6.0_.28deprecated.29 here]])
 
* '''vega-vc7''' - Visual Studio 7 projects. (See [[HowTo:VCPP_Compiling#Visual_Studio_7.x here]]
 
* '''vega-vc7''' - Visual Studio 7 projects. (See [[HowTo:VCPP_Compiling#Visual_Studio_7.x here]]
 
* '''vega-vc8''' - Visual Studio Express 2005 projects. (See [[HowTo:VCPP_Compiling#Visual_C.2B.2B_8.0_.282005_Express.29 here]])
 
* '''vega-vc8''' - Visual Studio Express 2005 projects. (See [[HowTo:VCPP_Compiling#Visual_C.2B.2B_8.0_.282005_Express.29 here]])
* {{Fixme}} ''WRITEME: other modules - '''charserver''', '''modtools''', '''translations'''
+
* '''vegastrike''' - the game base code.
 +
 
 +
--------------
 +
Ogre Branch
 +
 
 +
* '''data6.x''' - Data for the old OGRE branch - included in the old OGRE branch.
 +
* '''ogre_branch''' - the old OGRE branch.
 +
 
 +
You may download the old OGRE branch including the data6.x dir using this URL: http://svn.code.sf.net/p/vegastrike/code/branches/ogre_branch/
 +
 
 +
 
 +
The [[Development:Ogre|new OGRE branch - vegaogre]] resides on a new repository.
 +
Plz visit it here: https://sourceforge.net/projects/vegaogre/
  
Other modules are deprecated and are historical only:
+
-------------------------------------------
* '''data''' - deprecated 3.x and lower data files.
+
 
* '''vega-new-proj''' - even older VC6 project - don't use.
+
The Subversion tree can be browsed via a web interface: http://sourceforge.net/p/vegastrike/code/
* '''evilwm''', '''ethereal''', '''virtuanet''' - other projects with temporary repositories
 
* '''mission_select''' - Functionality also in Launcher, and also not used often.
 
* '''texturizer''' - If you can get it to compile, I believe it may still work.
 
* '''syseditor''' - If you like typing in coordinates of every planet by hand in an ugly console interface, go ahead.
 
  
  
 
'''→''' ''See also: [[Development:CVS Tree]]''
 
'''→''' ''See also: [[Development:CVS Tree]]''
  
 +
=Linux Clients=
  
=Linux Clients=
+
==Distribution Specific Instructions==
 +
 
 +
===Ubuntu Specific===
 +
''Ubuntu users and maybe Debian as well go [[HowTo:Checkout SVN (Ubuntu Linux)|here]] for a copy-paste, step by step, newb friendly tutorial to both checkout SVN and compile a build afterwards.''
  
 
==Command-line svn==
 
==Command-line svn==
Line 46: Line 82:
 
The linux-command `svn' is the most basic Subversion client.
 
The linux-command `svn' is the most basic Subversion client.
  
===Using svn for downloading vs-devel===
+
===General usage===
Downloading the Vega Strike svn-modules is easy. The general syntax is
+
Checking out to download the various Vega Strike svn-module folders is fairly easy. The general syntax is
 
<pre>
 
<pre>
 
  svn co [repo]/trunk/[module] [target-directory]
 
  svn co [repo]/trunk/[module] [target-directory]
 
</pre>
 
</pre>
 
+
The following syntax...
 
<pre>
 
<pre>
  svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk vegastrike
+
  svn checkout http://svn.code.sf.net/p/vegastrike/code/trunk vegastrike-code
 +
or
 +
svn checkout svn://svn.code.sf.net/p/vegastrike/code/trunk vegastrike-code
 
</pre>
 
</pre>
...will download the entire tree (all modules) into directory `vegastrike'.
+
...will download the entire tree (all modules) into directory `vegastrike-code'. But '''don't do this'''! Such a command would download data for both the normal (4 copies of it - in /data, /win-32, /win-64 and /mac) and ogre branches, plus Visual Studio projects for ALL supported versions and goodness knows what else.
  
In order to download single modules, a similar syntax can be used. For example, to download the data4.x module,
+
You should really only download individual modules, and a similar syntax can be used. For example, to download the data module...
 
<pre>
 
<pre>
  svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/data4.x
+
  svn co http://svn.code.sf.net/p/vegastrike/code/trunk/data data
 
</pre>
 
</pre>
...will suffice.
+
...will suffice. (Leaving off the target directory will make svn try check out into the ''working directory''.)
 
In order to get all the files required to compile the game, checkout the following modules:
 
In order to get all the files required to compile the game, checkout the following modules:
* data4.x
+
* '''data'''
* vegastrike
+
* '''vegastrike'''
* music (optional)
+
For content development, you may also want to checkout '''masters'''.
  
 +
===Usage===
 +
This is a short tutorial to download the development version on a Linux operating system. (More experienced MacOSX users can this, or they can read [[HowTo:Checkout_SVNMac]]. In order to run the development version of Vega Strike, the executables expect to find the data to be in certain places relative to them.
  
==Tutorial to download, setup and run the development version==
+
So, let's start.
In order to run the development version of Vega Strike the executables expect to find the data and music to be in certain places relative to them. This short tutorial deals with these specifics on Linux operating systems. (It also applies for Mac OS X users.)
 
  
So, let's start.
+
====Creating Directories====
* Create a directory where you would like your copy of the Vega Strike development version to live in. For example purposes we will create a directory called ''VegaStrike'' in our user's home-directory.
+
* Create a directory where you would like your copy of the Vega Strike development version to live in. For tutorial purposes, we will create a directory called ''VegaStrike'' in our user's home-directory.
<pre>~> mkdir VegaStrike</pre>
+
<pre>User@UserMachine:~$ mkdir VegaStrike</pre>
 
* Change into this newly created directory. In our case:
 
* Change into this newly created directory. In our case:
<pre>~> cd VegaStrike</pre>
+
<pre>User@UserMachine:~$ cd VegaStrike</pre>
 +
Note for newbs: The directory ''is case sensitive''. If you type: cd vegastrike or Vegastrike, it won't find the directory.
  
===Initial downloading (check-out)===
+
====Check-out====
 
Now we can start downloading the packages from the SVN repository. If you download them directly into your Vega Strike directory they will be just in the right place.
 
Now we can start downloading the packages from the SVN repository. If you download them directly into your Vega Strike directory they will be just in the right place.
* Download (check-out) the source code package ''vegastrike'', the content package ''data4.x'' and the optional ''music'' package.
 
<pre>~/VegaStrike> svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/vegastrike
 
~/VegaStrike> svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/data4.x
 
~/VegaStrike> svn co https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/music</pre>
 
This leaves you with four new directories inside your Vega Strike directory called as the packages are.
 
  
''Note:'' If you are having problems with SVN due to connecting via a proxy, try to solve them using the method described here: http://subversion.tigris.org/faq.html#proxy
+
Optionally to save on download bandwidth and to possibly download faster, you can download a compressed snapshot of the SVN module, and then just update that to the current revision. Otherwise SVN will get each file individually. To avoid any complication, it will work fine to follow the instruction below, using svn to do the whole checkout.
  
===Building===
+
Snapshots available here: http://forums.vega-strike.org/viewtopic.php?t=6749.<br>
*To build the engine, change into the source code directory ''vegastrike''.
+
Also here: http://sourceforge.net/project/showfiles.php?group_id=181552&package_id=211092&release_id=463105.<br>
<pre>~/VegaStrike> cd vegastrike</pre>
+
{{Fixme}}(Not sure if this second one includes the hidden .svn directories needed to update it with svn)
*Now start with setting up and configuring the build and finally building the engine.
 
<pre>~/VegaStrike/vegastrike> ./bootstrap-sh
 
~/VegaStrike/vegastrike> ./configure
 
~/VegaStrike/vegastrike> make vegastrike
 
~/VegaStrike/vegastrike> make soundserver</pre>
 
You will likely receive some error messages during any of these stages, especially during the configure part. If they tell you that your system is missing some development libraries install them. How this is done depends strongly on your Linux distribution, but we will assist you in the [http://vegastrike.sourceforge.net/forums/viewforum.php?f=5 Compiling Problems forums]. You will be left with a file called "config.log" please attach that instead of copy-and-pasting thousands of lines of error messages. It's all in this file.
 
  
After you installed the missing libraries repeat the last (failed) step and continue.
 
Finally, there will be two executables called ''vegastrike'' and ''soundserver''.
 
  
===Building the Setup program===
+
* Download (check-out) the source code package ''vegastrike'', and the content package ''data'' package. Copy and paste, ''in order''.
* You will need a GTK-1.2 development package installed on your system. GTK-2.0 will ''not'' work.  Usually, it will be called something like libgtk1.2-dev, gtk1.2-devel, or some similar name.  Make sure you have both the main package and the devel package installed.
+
<pre>User@UserMachine:~/VegaStrike$ svn co https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike
* Vssetup will be built along with vegastrike and all the tools, but only if you have the GTK-1.2 development package installed before running ./configure. If not, you must re-run ./configure and then '''make vssetup'''
+
then
* If compilation works, you will have a '''vssetup''' binary in the vegastrike directory (note that it will ''not'' be named '''setup''' as the directory tree may suggest.
+
User@UserMachine:~/VegaStrike$ svn co https://svn.code.sf.net/p/vegastrike/code/trunk/data</pre>
 +
This leaves you with two new directories inside your Vega Strike directory called as the packages are.
  
===Setup===
+
''Note:'' If you are having problems with SVN due to connecting via a proxy, try to solve them using the method described here: http://subversion.apache.org/faq.html#proxy
To run Vega Strike, the built executables need all the configuration and data files to be in the right place relative to them. Currently, they reside in the source code directory. But they have to be run out of the ''data4.x'' directory. Therefore, we will create a link.
 
* Change in to the ''data4.x'' directory. (We are still in the source code directory ''vegastrike''.)
 
<pre>~/VegaStrike/vegastrike> cd ../data4.x</pre>
 
* Create symbolic links to the executables in the source code directory.
 
<pre>~/VegaStrike/data4.x> ln -s ../vegastrike/vegastrike
 
~/VegaStrike/data4.x> ln -s ../vegastrike/soundserver
 
~/VegaStrike/data4.x> ln -s ../vegastrike/vssetup</pre>
 
* After that, you must run "'''./vssetup'''" inside the '''data4.x''' folder, or any folder which has the correct '''setup.config''' and '''vegastrike.config'''.
 
If we had made copies or moved the files instead of symbolic linking, we would have to do the procedure of copying or moving every time we build the executables from source.
 
  
===Running and configuring===
+
=====Boost Specific Check-out=====
* To run Vega Strike you have to start it from the ''data4.x'' directory.
+
As of 0.5.1 you will be able to choose not to download the boost revisions included in the vegastrike module. The Boost revisions are external definitions, so including the --ignore-externals argument when checking out vegastrike will result in none of the boost revisions from downloading.   This greatly reduces your download time. If you dont have a system installed boost setup with boost-python, you can pull the specific version of boost you want (1.28 or 1.35) by updating that directory specifically.
<pre>~/VegaStrike/data4.x> ./vegastrike</pre>
 
* Optionally you can create a short cut to this application onto your desktop or in your start menu. Simply point it to the ''vegastrike'' executable in the ''data4.x'' directory.
 
* If you need to adjust screen resolutions, input devices and key-mappings, do so by editing the configuration file ''vegastrike.config''. The default configuration file resides in the ''data4.x'' directory. You can change that or you can make your own user specific version by first copying it into your ''.vegastrike'' (hidden directory) directory in your user's home directory.
 
  
===Known bugs and work-arounds===
+
* For no Boost:
This issue has been fixed in the latest SVN versions.
+
<pre>svn co --ignore-externals https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike vegastrike</pre>
 +
<br>
 +
* If you want 1.35:
 +
<pre>svn update vegastrike/boost/1_35</pre>
 +
Now, you have to supply ./configure with a specific boost rev when you are choosing anything other than 1.28.  Also, choosing a boost rev that you haven't downloaded yet would be problematic.  If none are to be downloaded, use --with-boost=system, when using system boost, you have to make sure the python version ./configure uses matches the one boost-python was linked with. Some distros will supply multiple boost revs, python revs, but only one rev combo for boost-python.
  
In case you are using an older version (i.e. pre-10700 or so) and Vegastrike does not run (gives a "Cannot open display :0.0" error), if are willing to sacrifice some security on multi-user systems, you may have to use this command to run vegastrike:
+
=====Optional high quality textures=====
<pre>xhost +local:</pre>If you do not want to compromise security, update to the latest revision.
+
As of 0.5.1 there is a module in svn called ''hqtextures''. hqtextures, is an optional high quality texture pack that will override the textures in data that exist in hqtextures.  These are jpegs that wont be compressed in-game. Prior to 0.5.1, you have to edit the config file by hand to uncomment the line that enables the hqtextures module. At 0.5.1, it should be a setting in vssetup.  Enabling it while not having it downloaded wont hurt anything.  
  
===Staying updated with the development version===
+
You have to check it out of svn and put it next to data.  So if data is in /usr/local/games/vegastrike You would:
 +
<pre>svn co https://svn.code.sf.net/p/vegastrike/code/trunk/hqtextures /usr/local/games/vegastrike/hqtextures</pre>
 +
To be sure that hq textures is being used, check for the message about finding HQ Texture Pack at the start of the console output when running vegastrike.
 +
 
 +
====Staying updated with development version====
 
As development progresses the repository changes. In order to update your working copy you need to do the following.
 
As development progresses the repository changes. In order to update your working copy you need to do the following.
* Change into the package's directory you want to update. In our example all the packages were stored in a directory called ''VegaStrike''. Let's assume we want to update the ''data4.x'' package.
+
* Change into the package's directory you want to update. In our example all the packages were stored in a directory called ''VegaStrike''. Let's assume we want to update the ''data'' package.
 
<pre>~> cd VegaStrike
 
<pre>~> cd VegaStrike
~/VegaStrike> cd data4.x</pre>
+
~/VegaStrike> cd data</pre>
 
* Update from the SVN repository.
 
* Update from the SVN repository.
<pre>~/VegaStrike/data4.x> svn update</pre>
+
<pre>~/VegaStrike/data> svn update</pre>
* Do this for every package you want to update. Exchange ''data4.x'' with ''vegastrike'' or ''music''.
+
* Do this for every package you want to update. Exchange ''data'' with ''vegastrike''.
* If something changed in the ''data4.x'' or the ''music'' package, you don't need to recompile.
+
 
* If something changed in the source code package ''vegastrike''. You only need to repeat the building part of this tutorial.
+
====Determining when compiling is required ====
 +
After downloading all of the files and folders you need in the vegastrike, data, and other directories for the first time the program must be compiled, because some of the source code is in a compiled only language. If you only updated the modules, in some situations compiling again is not required:
 +
* If something only changed in the ''data'' package, you don't need to recompile.
 +
* If something changed in the source code package ''vegastrike'' you must compile.
 +
From here on either follow the common compiling instructions from this link [[HowTo:Compile from SVN on Linux]], or follow the specific compiling instructions for your specific Linux distribution to build, setup, and run the game listed under [[HowTo:Checkout SVN#Distribution Specific Instructions]].
 +
 
 +
==RabbitVCS==
 +
 
 +
===Website===
 +
http://rabbitvcs.org/
 +
 
 +
===Description===
 +
RabbitVCS is a set of graphical tools for Linux that lets you work with files under version control directly from Nautilus or Thunar file managers and Gedit. It's freely available under the GPL. You can directly check out modules, update, commit and see differences by right clicking on files and folders within Nautilus or Thunar. You can see the state of a file with overlays on top of the normal icons within Nautilus or Thunar.
 +
 
 +
===Usage===
 +
* Follow the instructions for your specific Linux flavor from http://wiki.rabbitvcs.org/wiki/download to install RabbitVCS
 +
* Create a new folder in the supported file manager where you will download your modules (called Sandbox, SVN or similar working location name);
 +
* Within that folder, create another folder (for example, VS);
 +
* Right click on the folder created and select RabbitVCS_SVN -> Checkout... .  This brings up the checkout configuration screen;
 +
* Input the URL of the repository into the dialogue box:
 +
<pre>
 +
https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike
 +
</pre>
 +
* Click OK to begin checkout of the module.
 +
[Note: The download of these modules are large, around 1GB+ and will take some time!]
 +
*Again right click on that same folder created and select RabbitVCS SVN -> Checkout... .
 +
* Input the URL of the second repository into the dialogue box:
 +
<pre>
 +
https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike/data
 +
</pre>
 +
[You may also alternatively use the built-in repository browser to select a different module you wish to check out.]
 +
 
 +
Because SVN is the active development repository, sometimes the latest copy will have problems and won't work. Luckily SVN has a revision system that allows you to choose a point in time from before the problem was introduced. If HEAD is in a broken state on your system and another revision works, report it on the forums or in the bug tracker so that the problem may be resolved.
 +
 
 +
If you need to specify a revision, note that each module can have their own revision number, including dependent modules. To do this you would:
 +
* Right mouse click your version controlled directory, and choose "RabbitVCS -> Update to revision..."
 +
* Type in the revision number, and hit OK to update everything in the dependent module, which is normally everything in the folder.
 +
 
 +
After downloading both vegastrike and data directories, the program must be compiled because some of the source code is in a compiled only language. From here follow the general or specific compiling instructions for your Linux distribution to build, setup, and run the game. [[http://wiki.vega-strike.org/HowTo:Compile_from_SVN HowTo:Compile_from_SVN_on_Linux]] 
  
 
=Windows Clients=
 
=Windows Clients=
  
Note: For windows, only the '''data4.x''' module is necessary to play the game.  You may also want the '''music''' module. ({{FIXME}} Does this still exist separately? Must this be moved into the data4.x folder?)
+
Note: For windows, only the '''win32''' module is necessary to ''play'' the game.  Checking out "win32" will download the "bin" and "data" directories.  You will find the executable program inside the "bin" folder.
 +
 
 +
As of 2010-11-20, the win32 module is working on the HEAD.  However, there are times that the win32 module is out of date and incompatible with the data directory in svn.  Revision 12933 is a known revision where things work if you find HEAD broken for some reasonPlease update this wiki entry if HEAD breaks and you have a later revision number that has no problems preventing gameplay.
  
 
If you are interested in compiling the code, you will need the '''vegastrike''' module, as well as the appropriate vega-project module for your Visual C++ version.  See [[HowTo:VCPP_Compiling]] for compiling info.
 
If you are interested in compiling the code, you will need the '''vegastrike''' module, as well as the appropriate vega-project module for your Visual C++ version.  See [[HowTo:VCPP_Compiling]] for compiling info.
 +
 +
Some people have problems with the latest executable relating to Visual C++ 8.  If you want an older version of the executable compiled with VC7, you can browse the repository here:
 +
https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike/win32/bin/vegastrike.exe?view=log
  
 
==Tortoise SVN==
 
==Tortoise SVN==
Line 151: Line 218:
  
 
===Description===
 
===Description===
Just like TortoiseCVS, Tortoise SVN lets you work with files under SVN version control directly from Windows Explorer. It's freely available under the GPL.  
+
Tortoise SVN lets you work with files under SVN version control directly from Windows Explorer (just like TortoiseCVS). It's freely available under the GPL.  
  
 
With TortoiseSVN you can directly check out modules, update, commit and see differences by right clicking on files and folders within Explorer. You can see the state of a file with overlays on top of the normal icons within Explorer. It even works from within the file open dialog.  
 
With TortoiseSVN you can directly check out modules, update, commit and see differences by right clicking on files and folders within Explorer. You can see the state of a file with overlays on top of the normal icons within Explorer. It even works from within the file open dialog.  
Line 157: Line 224:
 
===Usage===
 
===Usage===
 
* Download and Install Tortoise SVN from http://tortoisesvn.tigris.org
 
* Download and Install Tortoise SVN from http://tortoisesvn.tigris.org
* Create a new folder in Windows Manager where you will download your modules (called Sandbox, SVN or similar working location name);
+
* Create a new folder in Windows Explorer where you will download your modules (called Sandbox, SVN or similar working location name);
* Within that folder, create another folder being the name of module you wish to checkout e.g. data4.x, music, vegastrike etc;
+
* Within that folder, create another folder (for example, VS or win32);
 
* Right click on the folder created and select SVN Checkout.  This brings up the checkout configuration screen;
 
* Right click on the folder created and select SVN Checkout.  This brings up the checkout configuration screen;
* Input the URL of the repository into the dialog box, for example data4.x will be;
+
* Input the URL of the repository into the dialog box:
 
<pre>
 
<pre>
   https://vegastrike.svn.sourceforge.net/svnroot/vegastrike/trunk/data4.x
+
   https://svn.code.sf.net/p/vegastrike/code/trunk/win32
 
</pre>
 
</pre>
**You may also use the built-in repository browser to select the module you wish to check out.
+
[You may also use the built-in repository browser to select the module you wish to check out.]
 
* Click OK to begin checkout of the module.
 
* Click OK to begin checkout of the module.
 +
[Note: The download is 800+ MB and will take some time.]
 +
* After downloading, run the Setup program in the "bin" folder to set your screen size, etc. More importantly, this will tell Vegastrike where to find the "data" directory.  You only have to do this once.
 +
* Then you can run VEGASTRIKE.EXE in the "bin" directory to play.
 +
 +
===Specifying a Revision===
 +
Because SVN is the active development repository, sometimes the latest copy will have problems and won't work.  At the time of this writing this section (2010-09-18) the units.csv file has a problem and the game won't load.  This has been resolved in a later version, but we may run into the problem again so these instructions might be helpful if HEAD breaks again.  Luckily SVN has a revision system that allows you to choose a point in time from before the problem was introduced.  See the above section "Windows Clients" for the latest known revision that works with win32.
 +
 +
{{FIXME}}: We need a way for people to determine the best revision number to use when the HEAD is broken.  Perhaps a section at the top of this document?  In the mean time, check out the help section of the forums.
 +
 +
If you need to specify a revision when using TortoiseSVN , you need to do so for each module, including dependent modules.  So assuming you used the directory name "VS" on the above usage directions, you would:
 +
 +
* Right mouse click on your "VS" directory, and choose "TourtoiseSVN->Update to revision..."
 +
* Type in the revision number, and hit OK.  This will update everything under VS/bin, but VS/data will not be updated because it is a separate, dependent module.
 +
* Right mouse click on your "data" directory, under the top level ("VS" in this example) directory.  Again choose "TourtoiseSVN->Update to revision..."
 +
* Again type in the revision number, and hit OK.  This will update everything under VS/data directory.
  
 
=Mac OS X Clients=
 
=Mac OS X Clients=
 +
 +
NOTE: Leopard (10.5) comes with a SVN client.
  
 
==Command Line Client==
 
==Command Line Client==
Line 175: Line 259:
  
 
(or http://pdb.finkproject.org/pdb/search.php?summary=svn for Fink packages.)
 
(or http://pdb.finkproject.org/pdb/search.php?summary=svn for Fink packages.)
 +
 +
Footnote:
 +
metissian.com does not maintain current binaries.  A better source would be (ordered from most current to most convenient):
 +
 +
(a) http://subversion.tigris.org/ for current source code.
 +
 +
(b) use Fink or MacPorts to get (usually) current source code.
 +
 +
(c) http://www.codingmonkeys.de/mbo/ for a (usually) current install package.
 +
 +
(d) XCode3 includes svn as part of the default installation (But not XCode2).
  
 
==SCPlugin==
 
==SCPlugin==
Line 194: Line 289:
 
*[http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ svnX]
 
*[http://www.lachoseinteractive.net/en/community/subversion/svnx/features/ svnX]
  
 +
==Building==
 +
 +
Note, if you are not interested in compiling your own version, see [[HowTo:Checkout_SVNMac]] to get the whole package.
 +
 +
'''&#8594;''' ''See [[HowTo:Compile on OSX]]''
  
 
----
 
----

Latest revision as of 02:30, 6 August 2013

View this site in other languages:   DeutschEnglishFrançaisEspañolPolskiItalianoNederlandsРуccкий简体中文


arrow_left.png Edit News arrow_up.png HowTos Checkout SVN (Ubuntu Linux) arrow_right.png

NOTE:Recently the SVN location of the data directory has changed. Use svn -switch to fix this.


If you're interested in an experimental version of Vega Strike, then SVN is what you'll be looking at.


Executive summary

Subversion, or SVN, is a mechanism by which developers can keep track of changes to their code and distribute these changes to the public in real time. This allows people to take advantage of software as it is being developed, between official releases.

Windows users can use an SVN client to check out the "win32" module, which contains game data and windows binaries.

Linux and Mac OS X users must use an SVN client to check out the vegastrike module as well, which contains source code for them to compile. (Note that compiling Vega Strike on Mac OS X is considered very difficult.)

What is SVN?

SVN stands for Subversion, a system similar to CVS. It allows developers to simultaneously work on a centralised project - in this case, that's Vega Strike.

Downloading ("checking out") and compiling the SVN-version often gives you access to features not included in the latest stable release of the program. SVN-based versions can be unstable and may not even work at all, but may hold advantages compared to stable versions.

Structure

Unlike a CVS repository, the top level of an SVN repository contains more than just the trunk. Vega Strike's SVN repository follows the standard layout, so the SVN root looks like this:

  • branches - Independent copies of some or all of the trunk code. A developer making major changes, such as the ogre branch or major code cleanup will usually make a branch so they can keep track of their progress without breaking the trunk code for everyone else. These changes eventually are merged back into the trunk.
  • tags - Revisions which have been marked. For instance, a tag might be made for a stable release so that svn users can update to it via the svn sw command. The VS developers like to use tags to mark milestones in the code, such as before or after a major change, so you'll see a lot of tags.
  • trunk - The main trunk code, as would be seen in the root of a CVS repository. This contains a number of modules filled with code and data.

Modules

Vega Strike's SVN repository holds several subdirectories, which can either be checked out separately or altogether. The most notable ones are included below.

  • data - data files of the game. This consists mainly of models, textures and backgrounds. Required to play the game.
  • hqtextures - Optional High Quality Texture pack
  • win32 - Windows Binaries as well as includes an "external" to the data directory.
  • mac - Macintosh Package, as well as an "external" to the data directory.
  • masters - The original master files that created the game data (original meshes and uncompressed textures).
  • history - Old descriptions of factions and species.
  • modtools - Tools to aid creation and modification of game files (campaigns and units)
  • translations - Translations of Vega Strike data files into other languages.
  • vega-proj - Deprecated Visual C++ 6 projects. (See HowTo:VCPP_Compiling#Visual_C.2B.2B_6.0_.28deprecated.29 here)
  • vega-vc7 - Visual Studio 7 projects. (See HowTo:VCPP_Compiling#Visual_Studio_7.x here
  • vega-vc8 - Visual Studio Express 2005 projects. (See HowTo:VCPP_Compiling#Visual_C.2B.2B_8.0_.282005_Express.29 here)
  • vegastrike - the game base code.

Ogre Branch

  • data6.x - Data for the old OGRE branch - included in the old OGRE branch.
  • ogre_branch - the old OGRE branch.

You may download the old OGRE branch including the data6.x dir using this URL: http://svn.code.sf.net/p/vegastrike/code/branches/ogre_branch/


The new OGRE branch - vegaogre resides on a new repository. Plz visit it here: https://sourceforge.net/projects/vegaogre/


The Subversion tree can be browsed via a web interface: http://sourceforge.net/p/vegastrike/code/


See also: Development:CVS Tree

Linux Clients

Distribution Specific Instructions

Ubuntu Specific

Ubuntu users and maybe Debian as well go here for a copy-paste, step by step, newb friendly tutorial to both checkout SVN and compile a build afterwards.

Command-line svn

Website

http://subversion.tigris.org/

Description

The linux-command `svn' is the most basic Subversion client.

General usage

Checking out to download the various Vega Strike svn-module folders is fairly easy. The general syntax is

 svn co [repo]/trunk/[module] [target-directory]

The following syntax...

 svn checkout http://svn.code.sf.net/p/vegastrike/code/trunk vegastrike-code
or
 svn checkout svn://svn.code.sf.net/p/vegastrike/code/trunk vegastrike-code

...will download the entire tree (all modules) into directory `vegastrike-code'. But don't do this! Such a command would download data for both the normal (4 copies of it - in /data, /win-32, /win-64 and /mac) and ogre branches, plus Visual Studio projects for ALL supported versions and goodness knows what else.

You should really only download individual modules, and a similar syntax can be used. For example, to download the data module...

 svn co http://svn.code.sf.net/p/vegastrike/code/trunk/data data

...will suffice. (Leaving off the target directory will make svn try check out into the working directory.) In order to get all the files required to compile the game, checkout the following modules:

  • data
  • vegastrike

For content development, you may also want to checkout masters.

Usage

This is a short tutorial to download the development version on a Linux operating system. (More experienced MacOSX users can this, or they can read HowTo:Checkout_SVNMac. In order to run the development version of Vega Strike, the executables expect to find the data to be in certain places relative to them.

So, let's start.

Creating Directories

  • Create a directory where you would like your copy of the Vega Strike development version to live in. For tutorial purposes, we will create a directory called VegaStrike in our user's home-directory.
User@UserMachine:~$ mkdir VegaStrike
  • Change into this newly created directory. In our case:
User@UserMachine:~$ cd VegaStrike

Note for newbs: The directory is case sensitive. If you type: cd vegastrike or Vegastrike, it won't find the directory.

Check-out

Now we can start downloading the packages from the SVN repository. If you download them directly into your Vega Strike directory they will be just in the right place.

Optionally to save on download bandwidth and to possibly download faster, you can download a compressed snapshot of the SVN module, and then just update that to the current revision. Otherwise SVN will get each file individually. To avoid any complication, it will work fine to follow the instruction below, using svn to do the whole checkout.

Snapshots available here: http://forums.vega-strike.org/viewtopic.php?t=6749.
Also here: http://sourceforge.net/project/showfiles.php?group_id=181552&package_id=211092&release_id=463105.
FIXME (Not sure if this second one includes the hidden .svn directories needed to update it with svn)


  • Download (check-out) the source code package vegastrike, and the content package data package. Copy and paste, in order.
User@UserMachine:~/VegaStrike$ svn co https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike
then
User@UserMachine:~/VegaStrike$ svn co https://svn.code.sf.net/p/vegastrike/code/trunk/data

This leaves you with two new directories inside your Vega Strike directory called as the packages are.

Note: If you are having problems with SVN due to connecting via a proxy, try to solve them using the method described here: http://subversion.apache.org/faq.html#proxy

Boost Specific Check-out

As of 0.5.1 you will be able to choose not to download the boost revisions included in the vegastrike module. The Boost revisions are external definitions, so including the --ignore-externals argument when checking out vegastrike will result in none of the boost revisions from downloading. This greatly reduces your download time. If you dont have a system installed boost setup with boost-python, you can pull the specific version of boost you want (1.28 or 1.35) by updating that directory specifically.

  • For no Boost:
svn co --ignore-externals https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike vegastrike


  • If you want 1.35:
svn update vegastrike/boost/1_35

Now, you have to supply ./configure with a specific boost rev when you are choosing anything other than 1.28. Also, choosing a boost rev that you haven't downloaded yet would be problematic. If none are to be downloaded, use --with-boost=system, when using system boost, you have to make sure the python version ./configure uses matches the one boost-python was linked with. Some distros will supply multiple boost revs, python revs, but only one rev combo for boost-python.

Optional high quality textures

As of 0.5.1 there is a module in svn called hqtextures. hqtextures, is an optional high quality texture pack that will override the textures in data that exist in hqtextures. These are jpegs that wont be compressed in-game. Prior to 0.5.1, you have to edit the config file by hand to uncomment the line that enables the hqtextures module. At 0.5.1, it should be a setting in vssetup. Enabling it while not having it downloaded wont hurt anything.

You have to check it out of svn and put it next to data. So if data is in /usr/local/games/vegastrike You would:

svn co https://svn.code.sf.net/p/vegastrike/code/trunk/hqtextures /usr/local/games/vegastrike/hqtextures

To be sure that hq textures is being used, check for the message about finding HQ Texture Pack at the start of the console output when running vegastrike.

Staying updated with development version

As development progresses the repository changes. In order to update your working copy you need to do the following.

  • Change into the package's directory you want to update. In our example all the packages were stored in a directory called VegaStrike. Let's assume we want to update the data package.
~> cd VegaStrike
~/VegaStrike> cd data
  • Update from the SVN repository.
~/VegaStrike/data> svn update
  • Do this for every package you want to update. Exchange data with vegastrike.

Determining when compiling is required

After downloading all of the files and folders you need in the vegastrike, data, and other directories for the first time the program must be compiled, because some of the source code is in a compiled only language. If you only updated the modules, in some situations compiling again is not required:

  • If something only changed in the data package, you don't need to recompile.
  • If something changed in the source code package vegastrike you must compile.

From here on either follow the common compiling instructions from this link HowTo:Compile from SVN on Linux, or follow the specific compiling instructions for your specific Linux distribution to build, setup, and run the game listed under HowTo:Checkout SVN#Distribution Specific Instructions.

RabbitVCS

Website

http://rabbitvcs.org/

Description

RabbitVCS is a set of graphical tools for Linux that lets you work with files under version control directly from Nautilus or Thunar file managers and Gedit. It's freely available under the GPL. You can directly check out modules, update, commit and see differences by right clicking on files and folders within Nautilus or Thunar. You can see the state of a file with overlays on top of the normal icons within Nautilus or Thunar.

Usage

  • Follow the instructions for your specific Linux flavor from http://wiki.rabbitvcs.org/wiki/download to install RabbitVCS
  • Create a new folder in the supported file manager where you will download your modules (called Sandbox, SVN or similar working location name);
  • Within that folder, create another folder (for example, VS);
  • Right click on the folder created and select RabbitVCS_SVN -> Checkout... . This brings up the checkout configuration screen;
  • Input the URL of the repository into the dialogue box:
https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike
  • Click OK to begin checkout of the module.

[Note: The download of these modules are large, around 1GB+ and will take some time!]

  • Again right click on that same folder created and select RabbitVCS SVN -> Checkout... .
  • Input the URL of the second repository into the dialogue box:
https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike/data

[You may also alternatively use the built-in repository browser to select a different module you wish to check out.]

Because SVN is the active development repository, sometimes the latest copy will have problems and won't work. Luckily SVN has a revision system that allows you to choose a point in time from before the problem was introduced. If HEAD is in a broken state on your system and another revision works, report it on the forums or in the bug tracker so that the problem may be resolved.

If you need to specify a revision, note that each module can have their own revision number, including dependent modules. To do this you would:

  • Right mouse click your version controlled directory, and choose "RabbitVCS -> Update to revision..."
  • Type in the revision number, and hit OK to update everything in the dependent module, which is normally everything in the folder.

After downloading both vegastrike and data directories, the program must be compiled because some of the source code is in a compiled only language. From here follow the general or specific compiling instructions for your Linux distribution to build, setup, and run the game. [HowTo:Compile_from_SVN_on_Linux]

Windows Clients

Note: For windows, only the win32 module is necessary to play the game. Checking out "win32" will download the "bin" and "data" directories. You will find the executable program inside the "bin" folder.

As of 2010-11-20, the win32 module is working on the HEAD. However, there are times that the win32 module is out of date and incompatible with the data directory in svn. Revision 12933 is a known revision where things work if you find HEAD broken for some reason. Please update this wiki entry if HEAD breaks and you have a later revision number that has no problems preventing gameplay.

If you are interested in compiling the code, you will need the vegastrike module, as well as the appropriate vega-project module for your Visual C++ version. See HowTo:VCPP_Compiling for compiling info.

Some people have problems with the latest executable relating to Visual C++ 8. If you want an older version of the executable compiled with VC7, you can browse the repository here: https://svn.code.sf.net/p/vegastrike/code/trunk/vegastrike/win32/bin/vegastrike.exe?view=log

Tortoise SVN

Website

http://tortoisesvn.tigris.org/

Description

Tortoise SVN lets you work with files under SVN version control directly from Windows Explorer (just like TortoiseCVS). It's freely available under the GPL.

With TortoiseSVN you can directly check out modules, update, commit and see differences by right clicking on files and folders within Explorer. You can see the state of a file with overlays on top of the normal icons within Explorer. It even works from within the file open dialog.

Usage

  • Download and Install Tortoise SVN from http://tortoisesvn.tigris.org
  • Create a new folder in Windows Explorer where you will download your modules (called Sandbox, SVN or similar working location name);
  • Within that folder, create another folder (for example, VS or win32);
  • Right click on the folder created and select SVN Checkout. This brings up the checkout configuration screen;
  • Input the URL of the repository into the dialog box:
  https://svn.code.sf.net/p/vegastrike/code/trunk/win32

[You may also use the built-in repository browser to select the module you wish to check out.]

  • Click OK to begin checkout of the module.

[Note: The download is 800+ MB and will take some time.]

  • After downloading, run the Setup program in the "bin" folder to set your screen size, etc. More importantly, this will tell Vegastrike where to find the "data" directory. You only have to do this once.
  • Then you can run VEGASTRIKE.EXE in the "bin" directory to play.

Specifying a Revision

Because SVN is the active development repository, sometimes the latest copy will have problems and won't work. At the time of this writing this section (2010-09-18) the units.csv file has a problem and the game won't load. This has been resolved in a later version, but we may run into the problem again so these instructions might be helpful if HEAD breaks again. Luckily SVN has a revision system that allows you to choose a point in time from before the problem was introduced. See the above section "Windows Clients" for the latest known revision that works with win32.

FIXME : We need a way for people to determine the best revision number to use when the HEAD is broken. Perhaps a section at the top of this document? In the mean time, check out the help section of the forums.

If you need to specify a revision when using TortoiseSVN , you need to do so for each module, including dependent modules. So assuming you used the directory name "VS" on the above usage directions, you would:

  • Right mouse click on your "VS" directory, and choose "TourtoiseSVN->Update to revision..."
  • Type in the revision number, and hit OK. This will update everything under VS/bin, but VS/data will not be updated because it is a separate, dependent module.
  • Right mouse click on your "data" directory, under the top level ("VS" in this example) directory. Again choose "TourtoiseSVN->Update to revision..."
  • Again type in the revision number, and hit OK. This will update everything under VS/data directory.

Mac OS X Clients

NOTE: Leopard (10.5) comes with a SVN client.

Command Line Client

Website

http://metissian.com/projects/macosx/subversion/

(or http://pdb.finkproject.org/pdb/search.php?summary=svn for Fink packages.)

Footnote: metissian.com does not maintain current binaries. A better source would be (ordered from most current to most convenient):

(a) http://subversion.tigris.org/ for current source code.

(b) use Fink or MacPorts to get (usually) current source code.

(c) http://www.codingmonkeys.de/mbo/ for a (usually) current install package.

(d) XCode3 includes svn as part of the default installation (But not XCode2).

SCPlugin

Website

http://scplugin.tigris.org/

Description

"The goal of the SCPlugin project is to integrate Subversion into the Mac OS X Finder. The inspiration for this project came from the TortoiseSVN project."

Usage

Must have command line client installed.

FIXME -WRITEME

Other

Building

Note, if you are not interested in compiling your own version, see HowTo:Checkout_SVNMac to get the whole package.

See HowTo:Compile on OSX


arrow_left.png Edit News arrow_up.png HowTos Checkout CVS arrow_right.png