Editing MG/Getting The Code

Jump to navigation Jump to search

Warning: You are not logged in. Your IP address will be publicly visible if you make any edits. If you log in or create an account, your edits will be attributed to your username, along with other benefits.

The edit can be undone. Please check the comparison below to verify that this is what you want to do, and then save the changes below to finish undoing the edit.

Latest revision Your text
Line 1: Line 1:
[[MegaGlest]] has switched to git for managing the game's source code and data (the svn repo is no longer active).
+
'''NOTE: Due to problems converting to Git, MegaGlest is still using SVN.'''
 +
<!-- REMOVE THIS LINE WHEN CONVERTED TO GIT
 +
[[MegaGlest]] has now switched to git for managing the game's source code and data (the svn repo is no longer active). Using the command line you would get the code in one of two ways. Either read-only if you will not contribute changes or read and write if you plan to help contribute to the project as well.
  
==Linux quick setup==
+
==Choose a git client==
Do this ( download size is ~600MB ):
+
The MegaGlest source is stored in a Git repository (versions prior to 3.6.0.2 are in a different SVN repository, however), and requires a Git client to download. Clients exist for all major operating systems.
  
sudo apt-get update && sudo apt-get -y install git
+
====Linux====
git clone --recurse-submodules https://github.com/MegaGlest/megaglest-source.git
+
:''This section is currently outdated. You can [http://glest.wikia.com/index.php?title=MG/Getting_The_Code&action=edit edit] this page to improve that.''
cd megaglest-source/mk/linux/
+
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.
sudo ./setupBuildDeps.sh
 
./build-mg.sh
 
  
launch with:
+
====Windows====
./megaglest
+
Download [http://git-scm.com/ Git] and install it, then run <tt>git-bash.bat</tt> in the installation folder to start the Git command line. For those with a preference for a client with a graphical interface, [http://code.google.com/p/tortoisegit/ TurtoiseGit] exists for that, though you will still need to install Git as well as [http://code.google.com/p/msysgit/ MysisGit].
  
==Choose and install a git client==
+
==Check out the source code==
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.
+
===Making the directory===
 
+
:''Prior to running this command, you should navigate to the folder you wish to place the MegaGlest source.''
===Linux===
+
mkdir megaglest-git
On Debian GNU/Linux based distributions this is as easy as:
+
cd megaglest-git
 
 
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===
 
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.
 
 
 
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.
 
  
==Check out the source code==
 
 
===Cloning the sources===
 
===Cloning the sources===
'''''Prior to running these commands, you need to navigate to the directory (folder) you wish to place the MegaGlest source directory in.'''''
+
====Read only====
 +
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-source
 +
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-data
 +
git clone git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest-data-source
  
  git clone --recurse-submodules <nowiki>https://github.com/MegaGlest/megaglest-source.git</nowiki>
+
====Read and write====
 +
  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===
+
===Create the link===
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
  git submodule update --init --recursive
+
  ln -s -T ../megaglest-data data
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]].
 
  
===After the cloning===
+
===With TortoiseGit===
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.
+
:''This section only applies to those using TortoiseGit instead of the command line.''
cd megaglest-source
+
Once TortoiseGit and its prerequisites of Git and MysisGit are installed, right click in the folder you wish to place the sources and choose "Git Clone" from the context menu. Enter the following links in one at a time, waiting for TortoiseGit to finish downloading each one.
  cd data/glest_game
+
git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-source
  git checkout <branch>
+
  git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-data
cd ../..
+
  git://megaglest.git.sourceforge.net/gitroot/megaglest/megaglest /megaglest-data-source
 +
REMOVE THIS LINE WHEN CONVERTED TO GIT -->
 +
 
 +
==SVN==
  
==Update the source code==
+
If you chose a subversion CLI then run the following command to retrieve the latest 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.
+
<pre>svn co https://megaglest.svn.sourceforge.net/svnroot/megaglest/trunk megaglest</pre>
  
First choose the branch, e.g. "develop":
+
===Project folder layout===
git checkout <branch>
+
[[File:Folder_structure.png]]
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 instead. Check [https://megaglest.svn.sourceforge.net/svnroot/megaglest/tags/ here] to see which ones are available.
  
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.
+
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==
 
==See also==
*[[MG/Project Structure|Project Structure]]
+
*[[MG/SVN Structure|SVN Structure]]
*[https://github.com/MegaGlest/megaglest-source/wiki/Git-How-To Git-How-To]
 
 
 
 
[[Category:MG]]
 
[[Category:MG]]
[[Category:Development]]
+
[[Category:Cate Everett2]]

Please note that all contributions to MegaGlest are considered to be released under the Creative Commons Attribution Share Alike (see MegaGlest:Copyrights for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource. Do not submit copyrighted work without permission!

To edit this page, please answer the question that appears below (more info):

Cancel Editing help (opens in new window)