Trax

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Trax

Stephen Pair
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: 

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:

<img src="webkit-fake-url://BD564513-1962-40B0-818D-5AAB911657B7/image.tiff">

Here is a screenshot of the Smalltalk n-way code merge tool (showing a 3-way merge in progress):
<img src="webkit-fake-url://342ADBDF-9275-42BD-9D08-32F8B332800B/image.tiff">

And, here is a screenshot of the commit dialog:
<img src="webkit-fake-url://78206006-94D1-4421-BBC9-9336DAE987DE/image.tiff">

- Stephen


Reply | Threaded
Open this post in threaded view
|

Re: Trax

Ken Causey-3
Hi,

I just wanted to note that we have a Vimeo group

http://www.vimeo.com/groups/squeak

and adding your video to our group may help Squeakers find it in the
future.

Ken



signature.asc (197 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Trax

Stephen Pair
Thanks for letting me know...I'll definitely do that.

Sent from my iPhone

On Feb 28, 2010, at 3:37 PM, Ken Causey <[hidden email]> wrote:

> Hi,
>
> I just wanted to note that we have a Vimeo group
>
> http://www.vimeo.com/groups/squeak
>
> and adding your video to our group may help Squeakers find it in the
> future.
>
> Ken

Reply | Threaded
Open this post in threaded view
|

Re: Trax

Julian Fitzell-2
In reply to this post by Stephen Pair
Definite overlap with MC2 with what I've heard so far. I'll definitely finish listening to it and see what might be "borrowable". :)

Julian

On Sun, Feb 28, 2010 at 4:41 PM, Stephen Pair <[hidden email]> 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: 

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