Difference between revisions of "MG/Getting The Code"

From MegaGlest
Jump to navigation Jump to search
m (git clone --resursive is depricated)
 
(32 intermediate revisions by 12 users not shown)
Line 1: Line 1:
==Choose a subversion client==
+
[[MegaGlest]] has switched to git for managing the game's source code and data (the svn repo is no longer active).
  
For source code management, i.e. software versioning and revision control, we use the [http://en.wikipedia.org/wiki/Apache_Subversion subversion system]. You need to install a subversion client on your computer to access and work with it properly.
+
==Linux quick setup==
 +
Do this ( download size is ~600MB ):
  
====Linux====
+
sudo apt-get update && sudo apt-get -y install git
 +
git clone --recurse-submodules https://github.com/MegaGlest/megaglest-source.git
 +
cd megaglest-source/mk/linux/
 +
sudo ./setupBuildDeps.sh
 +
./build-mg.sh
  
Most users will want to use the [https://subversion.apache.org/ Apache Software Foundation (ASF) subversion] command line interface (CLI), as provided, on most distributions, by the 'subversion' package. Many distributions also provide graphical interfaces which are either frontends to the ASF subversion CLI or are standalone.
+
launch with:
 +
./megaglest
  
====Windows====
+
==Choose and install a git client==
 +
The MegaGlest source is stored in a Git repository (versions prior to 3.9.0 are in a different - SVN repository, however), and requires a Git client to download. Clients exist for all major operating systems.
  
If you fancy graphical interfaces then [http://tortoisesvn.tigris.org/ Tortoise] is for you. It allows you to manage the subversion repository from within Windows Explorer. However, if you prefer to work on a command line, then [http://www.sliksvn.com/en/download/ SlikSVN] is the utility you want.
+
===Linux===
 +
On Debian GNU/Linux based distributions this is as easy as:
  
Windows 7 note: If you are going to use subversion on 64-bit Windows 7 and get error messages like ''The file or directory is corrupted and unreadable'' then that's because your OS's only primary file system [http://glest.org/glest_board/?topic=5611.msg58480#msg58480 is buggy].
+
sudo apt-get update && sudo apt-get install git
  
==Check out the source code==
+
On other distributions, the process will be quite similar but you will need to use the package management tools available there and you should look for "git" or "git-core" package.
  
*NOTE: We have now switched to git (the svn repo is no longer active). Using the command line you would get the code in one of two way a) read-only if you will not contribute changes back b) read-write if you plan to help contribute to the project:
+
===Windows===
 +
Download [http://git-scm.com/download/win >>GIT<<] and install it ('''Important: '''On install-options choose "Run Git from Windows Command Prompt".), then run <tt>git-bash.bat</tt> in the installation folder to start the Git command line.
  
mkdir megaglest-git
+
For those with a preference for a client with a graphical interface, then e.g. [http://code.google.com/p/tortoisegit/ TortoiseGit] exists for that.
cd megaglest-git
 
  
a) readonly
+
==Check out the source code==
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-source
+
===Cloning the sources===
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-data
+
'''''Prior to running these commands, you need to navigate to the directory (folder) you wish to place the MegaGlest source directory in.'''''
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-data-source
 
  
b) read-write
+
  git clone --recurse-submodules <nowiki>https://github.com/MegaGlest/megaglest-source.git</nowiki>
  git clone ssh://<sourceforge- username>@megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-source
 
git clone ssh://<sourceforge- username>@megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-data
 
git clone ssh://<sourceforge- username>@megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-data-source
 
  
 +
===Popular mistakes===
 +
If you've not read this guide before clone then you probably made a quite popular mistake - "cloned repository without data (submodules)", then you should do this:
 
  cd megaglest-source
 
  cd megaglest-source
  ln -s -T ../megaglest-data data
+
  git submodule update --init --recursive
 +
If you still are not sure that you have downloaded full working source then you can compare your source directory with the [[MG/Project Structure|Project Structure]].
  
This section is now deprecated, but will work for version 3.6.0.2 and lower
+
===After the cloning===
 
+
If you want start work on changes in data submodule (or any other) then '''before starting''' you should first checkout HEAD of desirable branch e.g. "develop". In most situations it does not apply to regular users/testers/gamers.
If you chose a subversion CLI then run the following command to retrieve the latest source code:
+
cd megaglest-source
svn co https://megaglest.svn.sourceforge.net/svnroot/megaglest/trunk megaglest
+
cd data/glest_game
 
+
git checkout <branch>
==Project folder layout==
+
cd ../..
 
 
[[File:Folder_structure.png]]
 
  
 +
==Update the source code==
 +
When some time has elapsed after the "clone" and you again want to test the HEAD of the game then you should update the source code.
  
 +
First choose the branch, e.g. "develop":
 +
git checkout <branch>
 +
If you’re not actively working on the source and submodules (you are a tester/gamer), then the simplest and most universal way to update is:
 +
git pull && git submodule update --init --recursive
 +
in the other case you should read more [https://github.com/MegaGlest/megaglest-source/wiki/Git-How-To advanced git tutorial] intended for developers.
  
 
==Tags and branches==
 
==Tags and branches==
 +
Each release is 'tagged' and resides as '''tags''', so if you wanted an older release you would check out something below instead. Check [https://github.com/MegaGlest/megaglest-source/releases here] to see which ones are available.
  
This will check out the '''trunk''' directory, which is where active development takes place in. Each release is 'tagged' and a copy resides in the '''tags''' directory, so if you wanted an older release you would check out something below
+
Branches are created for separate larger changes from active / stable development, so check with your [https://github.com/MegaGlest/megaglest-source/branches web browser] which ones are available if this is your intention.
https://megaglest.svn.sourceforge.net/svnroot/megaglest/tags/
 
 
 
instead. Just use your web browser to click on this URL and see which ones are available.
 
  
Branches are created in the '''branches''' subdirectory when required to seperate larger changes from active / stable development, so replace 'trunk' by 'branches' and check with your web brower which ones are available if this is your intention.
+
==See also==
 +
*[[MG/Project Structure|Project Structure]]
 +
*[https://github.com/MegaGlest/megaglest-source/wiki/Git-How-To Git-How-To]
  
More info about the SVN Structure: [[MG/SVN Structure|SVN Structure]]
 
 
[[Category:MG]]
 
[[Category:MG]]
 +
[[Category:Development]]

Latest revision as of 16:14, 11 October 2022

MegaGlest has switched to git for managing the game's source code and data (the svn repo is no longer active).

Linux quick setup[edit]

Do this ( download size is ~600MB ):

sudo apt-get update && sudo apt-get -y install git
git clone --recurse-submodules https://github.com/MegaGlest/megaglest-source.git
cd megaglest-source/mk/linux/
sudo ./setupBuildDeps.sh 
./build-mg.sh

launch with:

./megaglest

Choose and install a git client[edit]

The MegaGlest source is stored in a Git repository (versions prior to 3.9.0 are in a different - SVN repository, however), and requires a Git client to download. Clients exist for all major operating systems.

Linux[edit]

On Debian GNU/Linux based distributions this is as easy as:

sudo apt-get update && sudo apt-get install git

On other distributions, the process will be quite similar but you will need to use the package management tools available there and you should look for "git" or "git-core" package.

Windows[edit]

Download >>GIT<< and install it (Important: On install-options choose "Run Git from Windows Command Prompt".), then run git-bash.bat in the installation folder to start the Git command line.

For those with a preference for a client with a graphical interface, then e.g. TortoiseGit exists for that.

Check out the source code[edit]

Cloning the sources[edit]

Prior to running these commands, you need to navigate to the directory (folder) you wish to place the MegaGlest source directory in.

git clone --recurse-submodules https://github.com/MegaGlest/megaglest-source.git

Popular mistakes[edit]

If you've not read this guide before clone then you probably made a quite popular mistake - "cloned repository without data (submodules)", then you should do this:

cd megaglest-source
git submodule update --init --recursive

If you still are not sure that you have downloaded full working source then you can compare your source directory with the Project Structure.

After the cloning[edit]

If you want start work on changes in data submodule (or any other) then before starting you should first checkout HEAD of desirable branch e.g. "develop". In most situations it does not apply to regular users/testers/gamers.

cd megaglest-source
cd data/glest_game
git checkout <branch>
cd ../..

Update the source code[edit]

When some time has elapsed after the "clone" and you again want to test the HEAD of the game then you should update the source code.

First choose the branch, e.g. "develop":

git checkout <branch>

If you’re not actively working on the source and submodules (you are a tester/gamer), then the simplest and most universal way to update is:

git pull && git submodule update --init --recursive

in the other case you should read more advanced git tutorial intended for developers.

Tags and branches[edit]

Each release is 'tagged' and resides as tags, so if you wanted an older release you would check out something below instead. Check here to see which ones are available.

Branches are created for separate larger changes from active / stable development, so check with your web browser which ones are available if this is your intention.

See also[edit]