Git
===
+Cloning the repository
+----------------------
+
+Expected time (~2.5MiB/s): ~2m (initial checkout) + ~75m (./all update)
+Expected size: 11.7 GiB
+
+|Repository |Size |
+|:-- |:-- |
+|data |4.6 GiB |
+|music |382 MiB|
+|darkplaces |160 MiB |
+|netradiant |42 MiB |
+|d0_blind_id|776 KiB|
+|maps |5.6 GiB|
+|gmqcc |22 MiB|
+
+ git clone https://gitlab.com/xonotic/xonotic.git
+ cd xonotic
+ ./all update -l best
+
After cloning the repository
----------------------------
After you cloned the repository (using `git clone <url>`) you are ready to start creating a branch to start working.
Please check [Repository Access](Repository_Access) to make sure you checked out **all** of the repositories. `data/` for example resides in its own repository.
+Compiling
+---------
+
+Run `./all compile` to compile the engine and gamecode. Add `-r` for a faster release build without debugging symbols.
+
+Running
+-------
+
+Run `./all run` launch the game after compiling. `./all run dedicated` to start a dedicated server instead.
+
Project structure
-----------------
| Directory | Repository |
| --------- | ---------- |
|`/`|git://git.xonotic.org/xonotic/xonotic.git|
-|`/bocc`|git://git.xonotic.org/xonotic/bocc.git|
+|`/d0_blind_id`|git://git.xonotic.org/xonotic/d0_blind_id.git|
|`/darkplaces`|git://git.xonotic.org/xonotic/darkplaces.git|
-|`/mediasource`|git://git.xonotic.org/xonotic/mediasource.git|
-|`/netradiant-xonoticpack`|git://git.xonotic.org/xonotic/netradiant-xonoticpack.git|
-|`/netradiant`|git://git.xonotic.org/xonotic/netradiant.git|
|`/data/xonotic-data.pk3dir`|git://git.xonotic.org/xonotic/xonotic-data.pk3dir.git|
|`/data/xonotic-maps.pk3dir`|git://git.xonotic.org/xonotic/xonotic-maps.pk3dir.git|
|`/data/xonotic-music.pk3dir`|git://git.xonotic.org/xonotic/xonotic-music.pk3dir.git|
|`/data/xonotic-nexcompat.pk3dir`|git://git.xonotic.org/xonotic/xonotic-nexcompat.pk3dir.git|
-|`/xonotic`|git://git.xonotic.org/xonotic/xonotic.git|
+|`/gmqcc`|git://git.xonotic.org/xonotic/gmqcc.git|
+|`/mediasource`|git://git.xonotic.org/xonotic/mediasource.git|
+|`/netradiant`|git://git.xonotic.org/xonotic/netradiant.git|
+|`/netradiant-xonoticpack`|git://git.xonotic.org/xonotic/netradiant-xonoticpack.git|
When using the ssh protocol, the xonotic/ directory is skipped, so it’s just: git.xonotic.org/xonotic.git
#### Making a non-tracking branch a tracking branch
-Most of gits magic is done in the config file. A tracking branch simple has merge information in the config. If your branch is not a tracking one and you wish to make it one, you can either push it, then remove the local version, and use `git branch —track me/feature1 origin/me/feature1` to recreate it as a tracking one, or you add the necessary config lines:
+Most of git's magic is done in the config file. A tracking branch simple has merge information in the config. If your branch is not a tracking one and you wish to make it one, you can either push it, then remove the local version, and use `git branch —track me/feature1 origin/me/feature1` to recreate it as a tracking one, or you add the necessary config lines:
git config branch.me/feature1.remote origin
git config branch.me/feature1.merge refs/heads/me/feature1