GSoC/GCI Archive
Google Summer of Code 2011

Git

Web Page: https://git.wiki.kernel.org/index.php/SoC2011Ideas

Mailing List: https://git.wiki.kernel.org/index.php/GitCommunity

[IMAGE http://git.kernel.org/git-logo.png]

Git is close to six years old, and it is probably the most successful distributed revision control system in Open Source by now. Many of the largest and most successful open source projects use it, including the Linux kernel, X.org, BlueZ, Cairo, DragonFly BSD, Etherboot, One Laptop Per Child, Perl, Samba, Thousand Parsec, The Wine Project, VideoLAN, XMMS2, etc. This achievement is the product of the lively Git development community, a loose-knit team of developers, technical writers, and end users with a passion for high quality open-source development.

The code repository for 2011 projects can be found at: http://code.google.com/p/google-summer-of-code-2011-git/downloads/list

Projects

  • Add the network stack to libgit2 Add a network stack to libgit2 and the supporting capabilities like packed object writing. Make pushing and fetching accessible through an exposed API in the library.
  • Git Sequencer Extend 'git cherry-pick' with '--continue', '--abort', and '--skip' features. This will ultimately be used to write git-sequencer, a new builtin command. The sequencer will provide a uniform interface over which existing commands like 'rebase', 'rebase -i' and 'am' can be re-implented. This should give the commands more functionality, improve their error handling, and make them faster. The project can only be considered successful if most of the code written gets merged into upstream.
  • Git submodule improvements The submodule system of git is very powerful, yet not that easy to work with. This proposed work will strengthen the submodule system even more and improve the user experience when working with submodules.
  • port histogram diff from jgit Port the histogram diff algorithm from JGit, as well as implement a more reliable (ie. low collision rate) hashing algorithm.
  • Remote helper for Subversion and git-svn Complete the work on git-remote-svn, (re)implement git-svn on top of it. Major motivation is: - git-svn git repository is not cloned easily, with git-remote-svn it could be much more straightforward. - git-svn fetch is slow on huge repositories, especially when there are many branches.