Submitting Patches
Have you improved Kusu? See Submitting Code for details on submitting your changes for inclusion.
Obtaining Commit Access
Once you provide a steady stream of improvements to the Kusu codebase and we tire of applying patches on your behalf, we will grant you commit access to the source code. Send an email to svn-request@osgdc.org with your SSH public key, including your first and last name. Do let us know what is your preferred commit name.
Relocating Your Working Copy
When you are granted commit access you will need to relocate your working copy of the source code, since code checked out via http is read-only. You can use the switch --relocate Subversion command to achieve this:
Code:
$ cd /path/to/checked/out/source
$ svn switch --relocate http://svn.osgdc.org/kusu-repo/kusu/trunk \
svn+ssh://kusudev@svn.osgdc.org/kusu/trunk
$ svn info | grep Root
Repository Root: svn+ssh://kusudev@svn.osgdc.org
Now svn info should report the new Repository Root and you can commit changes.
Generating an SSH Key
You need to use SSH version 2, then generate your key using:
Code:
$ ssh-keygen -t rsa
Once your commit access has been configured, access to the code is slightly different:
Code:
$ svn co svn+ssh://kusudev@svn.osgdc.org/kusu/trunk
You might want to use ssh-agent if SSH keep asking you for a password:
Code:
$ ssh-agent $SHELL$ ssh-add /path/to/my/privkey
To make sure that your key is loaded, you can list the keys currently in your SSH environment:
For more on SSH keys and ssh-agent, look at this guide or check out Keychain.
Coding Conventions
See our Coding Guide for details on the coding conventions.
What Configuration Should be Used for Subversion?
Make sure the following settings are in your Subversion config file (~/.subverson/config):
Code:
[miscellany]
enable-auto-props = yes
[auto-props]
*.c = svn:eol-style=native;svn:keywords=Id
*.h = svn:eol-style=native;svn:keywords=Id
*.sh = svn:eol-style=native;svn:keywords=Id
*.tmpl = svn:eol-style=native;svn:keywords=Id
*.spec = svn:eol-style=native;svn:keywords=Id
*.py = svn:eol-style=native;svn:keywords=Id
*.php = svn:eol-style=native;svn:keywords=Id
*.txt = svn:eol-style=native;svn:keywords=Author Date Id Revision
Makefile = svn:eol-style=native;svn:keywords=Author Date Id Revision
README = svn:eol-style=native;svn:keywords=Author Date Id Revision
INSTALL = svn:eol-style=native;svn:keywords=Author Date Id Revision
INSTALL.* = svn:eol-style=native;svn:keywords=Author Date Id Revision
UPGRADE = svn:eol-style=native;svn:keywords=Author Date Id Revision
*.rpm = svn:mime-type=application/octet-stream
Alternatively, you can get the config file from us.
Understanding Kusu and its Tools
We have some high level documentations on Kusu Architecture and its various tools.