GSoC/GCI Archive
Google Summer of Code 2014


License: GNU General Public License version 2.0 (GPLv2)

Web Page:

Mailing List:

Git is the most widely-used distributed revision control system in Open Source. Many large and successful projects use git, including the Linux Kernel, Perl, Eclipse, Gnome, KDE, Qt, Ruby on Rails, Android, PostgreSQL, Debian, and


  • Git configuration API improvements Currently git_config() uses a callback mechanism and file rereads for config values. Due to this approach, it is not uncommon for the configuration to be parsed several times during the run of a git program. Instead of using the above method, we will construct a in-memory cache of the config file the first time a config value is queried for. The callbacks will be rewired to use the new API functions provided for efficient lookups from the internal cache. After this, new features can be added.
  • Line options for git rebase --interactive On their ideas page for possible Google Summer of Code projects, the Git community proposes the addition of option arguments to the commands available on git-rebase-interactive todo lists, such as `squash --signoff f1a5c00`, which adds a ``Signed-off-by'' line to the commit message. During GSoC, I would like to refactor the git-rebase-interactive shell script such that it admits todo list commands with argument lists of varying length instead of solely nullary commands.