Contribute Code
From CenterIM
The CenterIM git repository has a branch called mob which may be changed by anyone using the user mob without requiring any authentication. This means that the branch is effectively world-writable and you can use it to commit changes without asking anyone for permission.
Contents |
1. Getting the Code
Using git:
Clone the CenterIM git repository using mob as user name. The mob user doesn't require any password.
The RSA key fingerprint can be found on the write-protected side Security Codes
git clone git+ssh://mob@repo.or.cz:22/srv/git/centerim.git
Enter the directory and create a new local branch mob tracking the remote mob branch.
cd centerim && git checkout -b mob origin/mob
Make sure it builds BEFORE you make any changes. It always makes sense to have a baseline for the sake of sanity.
./autogen.sh && ./configure && make
2. Changing the files
Now you can make changes to the files locally.
Test your patch:
- Run
makeand CenterIM itself and make sure you did not introduce other bugs! - Optionally, run
git diffto see what you modified, rungit checkout <filename>to revert your changes - If everything works fine and when you're satisfied, proceed to the next step.
3. Preparing to commit changes to the server
Step 1: Identify
To make sure that your commits have your name and email address, create the file ~/.gitconfig
[user] name = "Your Name" email = "your@email.address.xz"
Step 2: Commit your changes locally
On the command line
First review what files you have changed.
git status
Add the files you want to commit
git add <filename> #To add one file git add -u #To add all the files changed locally (visible with 'git status')
Then create the commit itself. This launches a text editor to allow you to enter a commit message. Please try to describe what your patch changes exactly without being overly verbose. A useful commit message increases chances that you patch will be merged to the master branch.
git commit
With the help of a GUI
Git also allows you to commit with the help of a GUI. Among other things this has the advantage that you can also select which individual hunks you'd like to commit.
git-gui
Step 3: Merge upstream changes
If you got the code of the mob branch and before you upload your patch, somebody else committed a patch to the same branch, you should try to get and merge the updates first. Otherwise the changes already in the repository will be committed twice.
git pull # retrieve updates from server git merge origin/mob # merge changes into local mob-branch
If your local changes conflict with the newest source code, it will tell you and refuse to apply the remote patch.
4. Upload changes to server
Uploading your patches:
git push -v origin mob
Now you are done, and the patch is visible to the world at [1]
5. Inform the developers
It might be a good idea that the other developers know you just committed a patch. Please send an email to the "developers mailing list" to inform them, describing your patch. Thanks!
Other useful GIT stuff
You can see what you modified by doing:
git status
To see the differences:
git diff <somefile> # differences within a file git diff # all differences in the current map of the branch
And to restore the file to its original version:
git checkout <filename> # restore a file git checkout -f # restore everything
[Summary: forget to change two occurences of cg to git]
Documentation
- A useful 'Kernel Hackers' Guide to git' can be found at http://linux.yyz.us/git-howto.html
