h1. Repository Access The repository is accessed using git. h2. Linux/OS X: First, you install git using your favorite package manager. Then:
git clone git://git.xonotic.org/xonotic/xonotic.git
cd xonotic
./all update
After that, you have a working checkout of the repository. h3. Getting write access A condition for write (push) access is that you agree that any code or data you push will be licensed under the General Public License, version 2, with or without the "or any later version" clause. In case the directory the changes apply to contains a LICENSE or COPYING file indicating another license, your pushed code has to be dual licensed appropriately. Subdirectories currently having a dual license: * data/qcsrc/warpzonelib - dual licensed as "GPLv2 or later" or MIT license. In case code you pushed was not written by you, it is your responsibility to ensure proper licensing. To apply for write access, make an issue of type "Support" in the category "Repository" and attach your public SSH key to it. To cleanly check out then, you would do:
git clone ssh://xonotic@git.xonotic.org/xonotic.git
cd xonotic
./all update
If you already have a checkout, you would do:
git config remote.origin.url ssh://xonotic@git.xonotic.org/xonotic.git
./all update
After that, you can write to the reposiotry using the usual git commands (commit, push). h3. Working with the helper script "all" To make working with the repo a little easier there's a little helper script (it's called all, as mentioned in above clone commands). It supports the following commands: ./all update ./all branch ./all push ./all checkout The normal workflow for working on a contribution is the following: ./all update This makes sure you are up to date ./all branch Then work on your changes, commit locally, etc, until you are happy.. ./all push This asks you what to push, etc.. This might fail, if in the meantime someone else has worked on the same branch. You will need to use git merge manually for the time being to resolve possible conflicts.. h2. Windows TODO info for TortoiseGit