Monticello
Last updated at 7:24 pm UTC on 26 November 2019
Monticello is a distributed, optimistic, concurrent, versioning system for Squeak and Pharo code (
Cuis can read Monticello files but not write them). Monticello is included in the release image and you do not need to load anyting to use it.
The home page by the original authors is at
http://www.wiresong.ca/Monticello/ and the original v2 documentation can be found at
http://www.wiresong.ca/monticello/v2/docs/.
The short list of what Monticello provides:
- Distributed versioning (store a package in as many repositories as you want, moving version files freely between them, without losing branching info)
- Optimistic branching and merging (reconcile concurrent modifications to a package, with conflict detection and resolution)
- Declarative modelling of Smalltalk code (Monticello is based on whole-package snapshots, not change sets)
- Dependency checking on load (if a prerequisite like a superclass is missing, your image is left untouched)
- smart package updating (migrate an image from one snapshot to another, performing the necessary additions and removals)
For a definition of Monticello terminology see
Elements of Monticello
For screen shots and navigation see
Monticello Basics.
For some advice on using Monticello see
Monticello repositories can be hosted in several ways
- simple file directories on your local disk
- remote file directories, including on services such as dropbox and iCloud etc (Monticello and Dropbox)
- squeaksource servers
- simple WebDAV servers
- based on WebServer (the basic web server provided in the release image)
Metacellois a package management system for Monticello.
For more background