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 |
[edit] 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/srv/git/centerim.git
Create a new local branch mob tracking the remote mob branch.
git checkout -b mob origin/mob
[edit] 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.
[edit] 3. Preparing to commit changes to the server
[edit] 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"
[edit] Step 2: Commit your changes locally
[edit] 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
[edit] 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
[edit] 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.
[edit] 4. Upload changes to server
Uploading your patches:
git push
Now you are done, and the patch is visible to the world at [1]
[edit] 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!
[edit] 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]
[edit] Documentation
- A useful 'Kernel Hackers' Guide to git' can be found at http://linux.yyz.us/git-howto.html
