]> de.git.xonotic.org Git - xonotic/xonotic.wiki.git/blobdiff - Git.textile
(Commit created by redmine exporter script from page "Repository_Access" version 58)
[xonotic/xonotic.wiki.git] / Git.textile
index 7a61e3b38e1b8684abecc6a0b37726974c055247..b30323fc79597743c79b48461882c542eddcd03a 100644 (file)
@@ -1,18 +1,43 @@
 h1. Git
 
-h2. After cloning the repository.
+{{>toc}}
+
+h2. After cloning the repository
 
 After you cloned the repository (using <code>git clone <url></code>) you are ready to start creating a branch to start working.
+Please check [[Repository Access]] to make sure you checked out *all* of the repositories. <code>data/</code> for example resides in its own repository.
+
+h2. Project structure
+
+The game content can be divided into several distinct parts, like the <code>data/</code> directory, and some of its subdirectories. This is why there are several repositories, and a helper script to fetch and update them all. This is described in [[Repository Access]] under "Working with the helper script ./all"
+
+The current structure looks as follows:
+|_.Directory|_.Repository|
+|<code>/</code>|git://git.xonotic.org/xonotic/xonotic.git|
+|<code>/bocc</code>|git://git.xonotic.org/xonotic/bocc.git|
+|<code>/darkplaces</code>|git://git.xonotic.org/xonotic/darkplaces.git|
+|<code>/mediasource</code>|git://git.xonotic.org/xonotic/mediasource.git|
+|<code>/netradiant-xonoticpack</code>|git://git.xonotic.org/xonotic/netradiant-xonoticpack.git|
+|<code>/netradiant</code>|git://git.xonotic.org/xonotic/netradiant.git|
+|<code>/data/xonotic-data.pk3dir</code>|git://git.xonotic.org/xonotic/xonotic-data.pk3dir.git|
+|<code>/data/xonotic-maps.pk3dir</code>|git://git.xonotic.org/xonotic/xonotic-maps.pk3dir.git|
+|<code>/data/xonotic-music.pk3dir</code>|git://git.xonotic.org/xonotic/xonotic-music.pk3dir.git|
+|<code>/data/xonotic-nexcompat.pk3dir</code>|git://git.xonotic.org/xonotic/xonotic-nexcompat.pk3dir.git|
+|<code>/xonotic</code>|git://git.xonotic.org/xonotic/xonotic.git|
+
+When using the ssh protocol, the xonotic/ directory is skipped, so it's just: git.xonotic.org/xonotic.git
+
+You can still use the <code>data/</code> directory as base for the game since darkplaces now supports <code>.pk3dir</code> directories natively.
 
-h3. Creating a new branch:
+h2. Creating a new branch
 
 By convention, branches are usually called <yourname>/<branch>.
 Before creating a branch, you first have to choose a base of your branch. Then you can create your branch:
 Let's assume your name is <code>me</code>, your branch will be called <code>feature1</code> and your base will be <code>master</code>.
 There are several ways of creating a branch:
-You can simply create it by issuing:
-<pre>git branch me/feature1 master</pre>
-This will create the branch locally, nothing else. It will not checkout the branch. You can do this now:
+You can simply create it by doing this from the xonotic directory and selecting where to branch:
+<pre>./all branch me/feature1</pre>
+This will create the branch locally and nothing else. It will not checkout the branch. You can do this now with:
 <pre>git checkout me/feature1</pre>
 
 Another possibility would be to checkout your base, and then use <code>git checkout -b me/feature1</code>. This is usually nice if you already are on your base branch because it is a single command.
@@ -66,7 +91,7 @@ h2. Merging and rebasing
 
 In git you have two ways of combining two branches: You can either merge them, which does exactly what its name suggests: it merges the commits together. Or you can rebase the branch.
 
-Rebasing means that all your changes will be put at the end. This works by first collecting and removing all your changes, then replacing your branch with the base branch, then applying all your changes to it. Whenever something failes to apply you'll be asked to fix it, and then issue a <code>git rebase --continue</code>
+Rebasing means that all your changes will be put at the end. This works by first collecting and removing all your changes, then replacing your branch with the base branch, then applying all your changes to it. Whenever something fails to apply you'll be asked to fix it, and then issue a <code>git rebase --continue</code>
 
 * Merging master into me/feature1: <pre>git checkout me/feature1
 git merge master</pre>