From Git SCM Wiki
Jump to: navigation, search

Table of Contents:


Git Community projects

Replace most core scripts with C versions

The project goal is to replace most git scripts written in shell or perl languages, with a more portable and faster builtin C versions.

Many git commands are currently implemented as scripts, since they are easy to program. In order to run the program in other systems, a Bourne shell and a Perl interpreter need to be properly installed, resulting in a harder development and use on other platforms or systems.

Many projects has been converted to builtin code already, and the structure of the code simplifies that task. At present, there are about 10 perl scripts and 32 shell scripts in the Git code implementing essential Git commands, like "git commit", "git merge", "git clone", etc. It has been estimated three days for converting the smaller cases, and a couple of weeks for the larger ones, so most of the scripts would be replaced with this project, allowing easier port of the program to other platforms.

SoC page: Replace most core scripts with C versions.
Webpage: SoC2007Projects/MoreToolsBuiltin
Student: Carlos Rica Espinosa
Mentor: Johannes Schindelin
Repository: git://

Progress reports:

GIT library project

Although GIT is well designed and does its job quite well, its current implementation makes use of static variables and may quit program execution when an error condition occurs.

Such implementation problems make it hard to write bindings for GIT (e.g. Perl and Python), embbed it or even write graphical front-ends.

This project's goal is to fix the main issues, write an API to retrieve data from GIT and a simple Python binding to demonstrate the API usefulness.

SoC page: GIT library project
Webpage: SoC2007Projects/Libification
Student: Luiz Fernando N. Capitulino
Mentor: Shawn O. Pearce
Repository: git://

Progress reports:

GitTorrent Server and Peer

The goal of the project is to provide a GitTorrent client, according to the specs at . Having a decentralized version control system that can share load among users is a very novel idea. There are numerous ways in which this can be beneficial to organizations or large, widely separated development groups.

The first goal of the project is to provide working experimental version of this client (client is client and server, like BitTorrent) and tracker. It should implement all the elements in the spec.

The code will be written in Python.

SoC page: Gittorrent Server and Peer
Webpage: SoC2007Projects/GitTorrent
Student: Srijak Rijal
Mentor: Sam Vilain

Foreign projects

Managed C# git implementation for use in Tomboy versioning (Mono)

The goal of this project is to to write a fully managed library implementing the git source code management system in C#, and use said library to write a versioning plugin for the Tomboy note-taking application. This would accomplish multiple objectives of importance to several FOSS projects: it would provide a managed git library that could be used to provide a git extension to MonoDevelop, as has been requested by the Mono project; provide versioning support to Tomboy, as has been requested by GNOME; and provide the foundations for a Windows port of git that does not rely on Cygwin or other compatibility layers.

SoC page: Managed C# git implementation for use in Tomboy versioning
Organization: Mono Project (organization SoC info)
Student: Andrew Pendleton
Mentor: Miguel de Icaza

Personal tools