GSoC/GCI Archive
Google Summer of Code 2015


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


  • Make git-pull and git-am builtins git-pull and git-am are frequently used git subcommands. However, they are porcelain commands and implemented as shell scripts, which has some limitations which can cause poor performance, especially in non-POSIX environments like Windows. I propose to rewrite these scripts into low level C code and make them builtins. This will increase git's portability, and may improve the efficiency and performance of these commands.
  • Unifying git branch -l, git tag -l, and git for-each-ref `git branch -l`, `git tag -l` and `git for-each-ref` are all about selecting a set of refs and printing the result. Currently, each has their own implementation and options. This results in some of them having selection options and others having formatting options. I propose to build a common library so that all three commands have common options and use the library extensively throughout their code.