Back to Programs

Programming languages

Git

Fast,Scalable,Distributed revision control system

cgitshell

Participation history

11 GSoC years

2026

4 projects

Official year page

Improve the new git repo command

The new git repo command doesn't handle file paths yet, and it forces users to dump all repository data at once instead of just requesting what they...

Complete and extend the remote-object-info command for git cat-file

Git's partial clone allows cloning repositories without downloading all objects (blobs, trees, ...). These objects are fetched on demand from the...

Improve Disk Space Recovery for Partial Clones

Problem: Git's "partial clone" is a lifesaver for huge repos because it lets you download only the files you actually need. But once you download a...

Refactoring in order to reduce Git’s global state

Git’s core C codebase still relies heavily on global state, such as the_repository and various environment-derived variables defined in...

2025

3 projects

Official year page

Refactoring in order to reduce Git’s global state

Git currently relies on a global object the_repository and several global environment-related variables, which limits modularity and complicates...

Machine-Readable Repository Information Query Tool

This project introduces a new Git sub-command (currently intended to be called git repo-info) that will centralize data currently retrieved by git...

Consolidate ref-related functionality into git-refs

This project aims to streamline reference management in Git by consolidating functionality currently spread across multiple commands into a single...

2024

3 projects

Official year page

Move existing tests to a unit testing framework

Git has many existing end-to-end tests which are written in shell script. However, to unit test some of the internal libraries/functionality, we use...

Move and improve reftable tests in the unit testing framework

A new unit testing framework was introduced to the Git mailing list last year with the aim of simplifying testing and improving maintainability by...

Implement consistency check for refs

The project addresses the issue that the current git-fsck command cannot detect corruption in the "packed-refs" file and lacks explicit checks for...

2023

2 projects

Official year page

Unify ref-filter formats with other --pretty formats

Git has an old problem of duplicated implementations of some logic. For example, Git had at least 4 different implementations to format command...

More Sparse Index Integrations

The "sparse-index" is a feature that reduces the size of the working directory's index to function effectively with "sparse-checkout", resulting in...

2022

2 projects

Official year page

More Sparse Index Integrations

The spare index feature accelerates Git commands when using sparse-checkout in cone mode. This works by modifying the on-disk index file in a way...

Reachability bitmap improvements

Git uses bitmaps to speed up the work of knowing which object(trees, blobs, etc.) can be reached from which commit. The current bitmap implementation...

2021

2 projects

Official year page

Use ref-filter formats in git cat-file

git cat-file has options --batch[= ] and --batch-check[= ] that can take a . It would be nice if the implementation of this would use the as much...

Finish converting submodule to builtin

Git has historically had many components implemented in the form of shell scripts. This was less than ideal for several reasons: Portability:...

2020

3 projects

Official year page

Convert submodule to builtin

Some Git commands were initially implemented directly in shell script with some instances of Perl as well. As times progressed, various platforms to...

Implement Generation Number v2

Git uses various clever methods for making operations on very large repositories faster, from bitmap indices for git fetch to generation numbers...

Unify ref-filter formats with other --pretty formats

Git has an old problem of duplicated implementations of some logic. For example, Git had at least 4 different implementations to format command...

2019

2 projects

Official year page

Improve consistency of sequencer commands

Since when it was created in 2005, the git rebase command has been implemented using shell scripts that are calling other git commands. Commands like...

Make pack access code thread-safe

As direct as possible, the goal with this project is to make more of Git’s codebase thread-safe, so that we can improve parallelism in various...

2018

3 projects

Official year page

Convert “git stash” to builtin

Currently, many components of Git are still in the form of Shell or Perl scripts. This choice makes sense especially when considering how faster new...

Convert rebase and it's options to C

Many components of Git are still in the form of shell and Perl scripts. This has certain advantages of being extensible but causes problems in...

Convert interactive rebase to C

git is a modular source control management software, and all of its subcommands are programs on their own. A lot of them are written in C, but a...

2017

1 project

Official year page

Incremental Rewrite of git-submodules

To manage the external dependencies, git submodule commands have been frequently used by the developers in their projects. But as most of the...

2016

1 project

Official year page

Incremental Rewrite of Git Bisect

Git bisect is a frequently used command which helps the developers in finding the commit which introduced the regression. Some part of it is written...