[squeak-dev] How can simple version control be implemented for binary objects?

David Corking lists at dcorking.com
Wed Feb 1 12:27:42 UTC 2012


Although it is not a current area of my personal interest, I want to
piggyback on the current discussion about configuration management and
version control with this question, as I think the answer may be
relevant to future projects, such as rich multimedia applications,
rich user interfaces, and active essays.

How can simple version control be implemented for binary objects? I am
thinking of such things as drawings made with the paint tool, and
audio recorded with the sound recorder, as well as compound objects
such as texts with embedded images, formatting and hyperlinks: the
things that web developers call 'assets'.

A reasonable approach seems to be to place an updated image in a
file-based version control system, and then use scripts to keep source
code up-to-date (from a Monticello repository) and build releases.
That requires manual coordination of the assets in a base image.

Another might be to export project files (.pr files also known as
image segments) into a versioned file system such as a webdav server.
Is it easy to use assets in project files? I don't know how difficult
it is to programmatically move objects from project worlds into flaps
or into other worlds.

Does anyone use more fine-grained controls that allow, say, individual
morphs or models to be versioned in multi-developer projects? Is
Morph's fileOut method suitable?

I seem to recall (a year or more ago) that Edgar suggested that such
an objective may be achieved by extending the project / image segment
system. Does that still seem reasonable and has anyone made progress
on that front? Alternatively, is it feasible to extend existing
Smalltalk config management tools in this direction? (I think
Monticello already handles rich hypertext in source code comments, so
could it one day handle more complex objects?)

David


More information about the Squeak-dev mailing list