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): <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
|
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 |
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 |
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:
|
Free forum by Nabble | Edit this page |