. .


Practical Git for Smalltalk

March 21, 2012 15:52:29.622

Last main talk of the conference - Dale Henrich's on using Git with Smalltalk. Caveats:

  • Git can be used well with Smalltalk
  • It's not practical to expect all dialects to switch wholesale off whatever they use now
  • It can be used to share code across dialects

What about the stock stuff, like ENVY, Store, and Monticello? High cost of porting the tools between dialects, and they tend to be tightly coupled with their "home" toolsets. The implementation as it exists now is called FileTree. The basic implementation is based on Monticello - but the disk structure does not rely on Monticello artifacts, and works in Pharo, Squeak (and thus GLASS).

The FileTree package structure is SCM neutral, so it could be used with any standard SCM toolset. What's a Package in this context? an object or algorithm that defines the contents of a Snapshot. A Snapshot is the state of a Package at a given point in time. In an image, a Snapshot is represented as a collection of class and method definitions. On disk, it's class and method chunks in a collection of .st files.

By saving packages this way, it leverages what Git can do from a "what changed over time" standpoint. Status? This comes from work that has been ongoing for a bit in the Pharo world, so it's actually being used "in the real world". Right now, it's suitable for anyone using Monticello. There's work to be done to accommodate this to all dialects (in terms of file format alone).

Dale says that Envy and Store were better options in the mid 90's, but Git/GitHub is better now. Right now, GST, Redline, and Amber are all using GitHub. Using Git is an upgrade from Monticello, but for Store/Envy it's more of a way to share code. It's an addition, not a replacement.

Technorati Tags: , ,

posted by James Robertson

 Share Tweet This