Git integration into Pharo

Research Team:
Team leader (HDR):
St├ęphane Ducasse
Project leader and contacts:
Damien Cassou (Project contact)
Camillo Bruni
Damien Pollet

Project Context

Pharo is a new free open-source Smalltalk-inspired programming language and environment. It provides a platform for innovative development both in industry and research.

Git is a famous distributed revision control system that is gaining momentum.

Project goal and work plan

The goal of this project is to integrate Git within Pharo. The Git object model has already been implemented. The student will have to implement what is missing, that is to say:

  • the Git network protocol with good unit-tests (already started);
  • a new back-end for Monticello (Pharo's revision control system) that fetches from and saves to a Git repository (already started);
  • a simple graphical user interface (written in the Spec GUI framework) to manipulate Git repositories.

To fulfill the project's goal, the student will first have to learn Pharo, Git (and its underlying network protocol) and Spec.

Benefits for the Pharo community

This work will allow the community to reuse existing tools (e.g., hosting services, continuous integration, web interfaces, code review) instead of loosing energy and time reinventing the wheel.

Benefits for the student

  • integration into a prolific research group, fond of software development and programming languages;
  • discover completely different ways to program object-oriented applications;
  • understand how protocols are designed and implemented;
  • get insights about designing graphical user interfaces;
  • potential integration as a master and/or PhD student either within the group or within one of its numerous partners around the world (Switzerland, Chile, Belgium, Argentina).


  • Having a good understanding of object-oriented programming;
  • Being eager to learn a new programming language and environment.