In the Smalltalk dialects Squeak and Pharo it is difficult to view changes to source code that occurred accross major releases. This poses a problem for development as well as for code analysis: Developers often need to be able to revert code to a previous version and for code analysis there should ideally be a single source of information. We solve the problem by building a Git repository with the complete source code history of Pharo.

The tool we use to create the Git repository is called Pharogenesis. Pharogenesis uses a Smalltalk implementation of Git called GitFS to build a Git repository from the source code.

The source code database we built with Pharogenesis is available on github (

Getting Started

To get started you can either use a ready-made one-click image (suggested), or try to load the code yourself.

One-Click Image

  1. Download the Pharogenesis distribution.
  2. Launch the executable of your platform:
    • Mac:
    • Linux:
    • Windows:

Load the Code

  1. Download a Pharo 1.1.1 one-click image.
  2. Evaluate the following script:
Gofer new
	url: '';
	package: 'ConfigurationOfPharogenesis';
((Smalltalk at: #ConfigurationOfPharogenesis) project version: #stable)
	load: #OBExtension

Load the Pharogenesis repository

To browse method versions in Pharogenesis you need to clone the prepared repository from github. Run the following commands on the command line:

cd <path to image or one-click application>
git clone
cd pharogenesis
git checkout -b origin/pharo

Where to find more information


The Pharo mailing list is the place to ask any kind of questions related to Pharogenesis.

Last changed by scg on 14 May 2020