Kumpel

You are here:

Kumpel is a tool for exploring the history of a software system. The history data can be extracted from any Subversion repository. It is developed by Matthias Junker.

It uses Java KumpelProjectLoader to connect to a repository using the subversion client library svnkit. The model is based on Hismo and therefore histories and versions are modeled as first class entities.

Currently Kumpel only supports loading projects in one go. In future versions incremental loading/updating of the model will be supported.

Installation

  • Open your Moose image. When you want to build a model of a big project with many revisions, allocate enough memory to the image by using the following command on the command line:
 /Path/To/Cog.app/Contents/MacOS/Croquet -memory 1024M
  • Load Kumpel in your Pharo image by executing
Gofer new 
squeaksource: 'Kumpel';
package: 'ConfigurationOfKumpel';
load.
(Smalltalk at: #ConfigurationOfKumpel) loadDefault.
  • Download kumpel.jar and put it in the same directory as your image file.

The source code of the KumpelProjectLoader can be downloaded here:

 https://github.com/mjunker/KumpelProjectLoader
  • Open the Moose panel and click on the triangle in the upper right corner and select "Build model from svn repository" and enter the requested information.
  • Depending on the size of the project the building process can take a long time (e.g. loading and building a model of the subversion project with around 22’000 revisions takes about 2 hours). When it’s done, the model will be added in Moose. It can either be browsed using the Moose Finder or the "change browser" in which one can browse the commits and view the diffs of the files. this can be opened by right-clicking on the model, and selecting Browse>Change Browser (this can only be used when the diffs are loaded as well).
  • Alternatively you can load a Kumpel project by executing the following script:
KMPProjectLoader new
projectName: 'verveinej';
startRev: '1';
endRev: '122';
url: 'svn://scm.gforge.inria.fr/svn/verveinej/';
buildDiffs: true;
load