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:
For a definition of Monticello terminology see Elements of Monticello
- 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 screen shots and navigation see Monticello Basics.
For some advice on using Monticello see
Monticello repositories can be hosted in several ways
Metacellois a package management system for Monticello.
- 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)
For more background