[squeak-dev] Trax

Julian Fitzell jfitzell at gmail.com
Tue Mar 2 23:28:26 UTC 2010

Definite overlap with MC2 with what I've heard so far. I'll definitely
finish listening to it and see what might be "borrowable". :)


On Sun, Feb 28, 2010 at 4:41 PM, Stephen Pair <stephen at pairhome.net> wrote:

> With all of the recent interest in version control for squeak (and git,
> bazaar, mercurial, etc), I figured I should mention a project I was working
> on a couple years ago and which has stagnated (due to my shift in attention
> to another project).  I've never published this code before (and haven't
> just yet, but will if there is interest).  I've uploaded a vide here:
> http://www.vimeo.com/9799424
> Trax was inspired by git (but does not use git).  Its repository format is
> very similar (but not identical) to git.  There are some differences in how
> I chose to handle repository replication and merging of tags.  I hope others
> working on similar projects might find it useful (for either reusing code or
> just some ideas).  I certainly prefer an all Smalltalk version control
> system (all things being equal), however it might ultimately be more
> practical to leverage the countless work put into one of the popular version
> control systems and taking some of Trax and integrating it with git (or
> bazaar, mercurial or whatever) would be interesting.
> Sorry for the crude nature of the video, it was originally meant only as a
> dry run and to help me create a script for a more polished video (and sorry
> for no docs, I do prefer written, searchable docs to videos, but videos are
> much quicker to produce).  Below is the video description and a few
> screenshots:
> This video is a demonstration of Trax, a git inspired object versioning
> system for squeak. Any object that can be serialized can be stored and
> versioned in Trax and the lineage of those objects can be browsed in the
> version history browser. Additionally, I plugged Monticello packages into
> Trax such that Smalltalk source code can be versioned. I modified the
> package browser to make it possible to commit packages directly from it and
> I created an n-way merge tool. Below are some notable points where various
> topics are discussed. Sorry for the watermark and disorganization...this
> video was a first cut that was originally intended to just be used in
> creating a script for a final, more polished presentation. Due to a lack of
> time and the need to work on another project, I've decided to just publish
> this raw video in the hopes it might inspire others to pickup the code,
> reuse it in other projects, or just get a few ideas.
> 00:00 - intro
> 07:00 - discussion of the underlying file structure
> 26:30 - introduction of the version history browser
> 36:00 - introduction to the Smalltalk n-way merge tool
> 38:40 - demo of a 3 way merge
> 41:00 - demo of committing code from the package browser (and showing the
> lineage of a 3 way merge in the version history browser)
> 53:35 - demo of tagging a version
> 54:00 - demo of publishing to one repo, then replicating to another repo
> Here is a screen shot of the version browser:
> Here is a screenshot of the Smalltalk n-way code merge tool (showing a
> 3-way merge in progress):
>  And, here is a screenshot of the commit dialog:
> - Stephen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.squeakfoundation.org/pipermail/squeak-dev/attachments/20100303/9f80439b/attachment.htm

More information about the Squeak-dev mailing list