Reorganizing Changes

Research Team:
Team leader (HDR):
St├ęphane Ducasse
Project leader and contacts:
Damien Cassou (Project contact)
Martin Dias

Project context

After some time programming on a system, a developer might realize he has made quite a few unrelated changes to the system: for example, he has fixed a bug, improved the documentation and finished implementing a new feature. Now, the developer would like to share (i.e., commit) these improvements separately to facilitate code review and later bug fixing. Current tools (e.g., git add --interactive) let developers select which files and lines to commit first.

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.

Project goal

The goal of this internship is to go way beyond existing tools (such as git): The tools must help developers create branches out of their changes, e.g., by extrapolating the dependencies and by facilitating manual reorganizations of the changes. The tools must also verify that each branch is correct, e.g., by compiling the code in each branch and running the tests. Martin Dias, a PhD student in the RMoD research group, will be associated to the internship and has already implemented a change model that the internship will leverage.

The project will be realized in the Pharo environment.

Benefits for the student

  • Knowledge of Pharo, version control systems, and development environments;
  • Integration into a prolific research group, fond of software development and programming languages;
  • 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).

Benefits to the Community

With such a tool, developers will more easily share small and independent commits which will simplify integration, code review, and bug fixing.


  • A good level of English (written and spoken);
  • Being eager to learn and program.