Fetching contributors…
Cannot retrieve contributors at this time
96 lines (77 sloc) 3.81 KB
When you start working on a fix/enhancement for an open issue please always
post a comment in this issue's discussion to tell other devs that you have
started working on it so that they won't waste any of their free time by
working on their own fix/enhancement for it.
If there isn't an open issue discussion for a bug fix/enhancement you want
to work on please check that there isn't a closed discussion for it because
a previous developer of it didn't finish their work which you could finish.
And if there is no existing issue discussion for what you want to work on
please open a new issue for it and tell other devs here that your going to/
have started working on it.
If you want to make a suggestion, please copy the following questions into
your issue and answer them:
What is it you would like in the game?
What version of the product are you using? On what operating system?
When providing a pull request ensure the description field describes the major
changes from the request. If your pull request relates to any existing
issues, include those issues in the description. e.g. "Fixes issue #1"
First Time
1. Ensure you have a GitHub account (
2. Fork CorsixTH\CorsixTH (
3. Ensure you have a git client. (
4. Clone your fork to your computer
- If using github client, run Git Shell
- git clone
5. Add upstream remote
- git remote add upstream
Every Time
6. Sync your master branch with the CorisxTH repository's master branch
- git fetch upstream
- git rebase upstream/master
7. Make sure no one is already working on the issue you want to work on.
8. Tell other developers that you've started/will start working on this issue
by posting a comment in its existing issue discussion or if there's no existing
discussion for it then please open a new issue discussion for it and tell other
devs here that your working on it.
9. Create feature branch
- git branch myfeature upstream/master
10. Checkout your feature branch
- git checkout myfeature
11. Make your changes
12. Unittest continuously, see README.txt in CorsixTH/Luatest for more info
13. Review your changes
- git diff
(each file) - git add
- git diff --check
Check there's no white spaces.
- git commit
Write an informative commit message and save
14. Push your changes to your fork
- git push origin myfeature
15. Create a pull request
Now watch to see if your feature is accepted.
Multiple commits:
If your feature is very big, break it into subprojects and do a separate commit
for every independent operation. This means doing step 10 several times as you
go. You still only need to do one pull request at the end.
Syncing with Upstream:
If it takes a long time between when you start your feature and when you finish
there might be other important changes other people are making to CorsixTH. It
is a good idea to make sure your code will still operate correctly with the
latest changes. To do this:
- git fetch upstream
- git rebase upstream/master
What this does is downloads all the changes from CorsixTH\CorsixTH since you
started, and pretends that all your changes were made after them. If there are
conflicts, for example if someone else changed the same line in the same file
that you did you will be asked to resolve those conflicts.
If you follow these guidelines then you should be well on your way to producing
good pull requests.
If you need more help just ask the friendly people on or via IRC in #corsix-th on freenode.