We're making it easy to do interesting things with git, and we'd love to have your help.
We hang out in the #libgit2 channel on irc.freenode.net.
First, know which version of libgit2 your problem is in. Compile and test
against the development
branch to avoid re-reporting an issue that's already
been fixed.
It's incredibly helpful to be able to reproduce the problem. Please include a bit of code and/or a zipped repository (if possible). Note that some of the developers are employees of GitHub, so if your repository is private, find us on IRC and we'll figure out a way to help you.
Life will be a lot easier for you if you create a named branch for your
contribution, rather than just using your fork's development
.
It's helpful if you include a nice description of your change with your PR; if someone has to read the whole diff to figure out why you're contributing in the first place, you're less likely to get feedback and have your change merged in.
The most common case here is porting code from core Git. Git is a GPL project,
which means that in order to port code to this project, we need the explicit
permission of the author. Check the
git.git-authors
file for authors who have already consented; feel free to add someone if you've
obtained their consent.
Other licenses have other requirements; check the license of the library you're porting code from to see what you need to do.
We like to keep the source code consistent and easy to read. Maintaining this takes some discipline, but it's been more than worth it. Take a look at the conventions file.