Definite overlap with MC2 with what I&#39;ve heard so far. I&#39;ll definitely finish listening to it and see what might be &quot;borrowable&quot;. :)<br><br>Julian<br><br><div class="gmail_quote">On Sun, Feb 28, 2010 at 4:41 PM, Stephen Pair <span dir="ltr">&lt;<a href="mailto:stephen@pairhome.net">stephen@pairhome.net</a>&gt;</span> wrote:<br>

<blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div>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&#39;ve never published this code before (and haven&#39;t just yet, but will if there is interest).  I&#39;ve uploaded a vide here: </div>



<div><a href="http://www.vimeo.com/9799424" target="_blank">http://www.vimeo.com/9799424</a></div><div><br></div><div>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.</div>



<div><br></div><div>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:</div>



<div><br></div><div><div>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&#39;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.</div>



<div><br></div><div>00:00 - intro</div><div>07:00 - discussion of the underlying file structure</div><div>26:30 - introduction of the version history browser</div><div>36:00 - introduction to the Smalltalk n-way merge tool</div>



<div>38:40 - demo of a 3 way merge</div><div>41:00 - demo of committing code from the package browser (and showing the lineage of a 3 way merge in the version history browser)</div><div>53:35 - demo of tagging a version</div>



<div>54:00 - demo of publishing to one repo, then replicating to another repo</div></div><div><br></div><div>Here is a screen shot of the version browser:</div><div><br></div><img src=""><div>

<br></div><div>Here is a screenshot of the Smalltalk n-way code merge tool (showing a 3-way merge in progress):</div><div><img src=""></div><div><br></div>
<div>
And, here is a screenshot of the commit dialog:</div><div><img src=""></div><div><br></div><font color="#888888"><div>- Stephen</div>
</font><br><br>
<br></blockquote></div><br>