Monticello
presentation
Putney, Colin: Quallaby
Tuesday 2 pm to 2:45 pm
Abstract: In the last 2 years Monticello has emerged as a viable tool for source code management and versioning of Squeak applications. Having accumulated some real world experience with Monticello, we've designed a next-generation versioning engine which will form the core of Monticello 2.0.
This talk will examine three hard problems in versioning software, and explore Monticello's unique approach to solving them. Along the way, we'll also see comparisons to other versioning systems, including Store, ENVY and Monticello 1.
First is the "repeated merge" problem. This occurs when we have two (or more) parallel lines of development. Repeatedly merging code back and forth between the two lines can create artificial conflicts during merges, forcing developers to explicitly avoid conflicts as they work. A good versioning tool allows developers to save or merge their work at any time, and records enough history information to prevent spurious conflicts from arising.
The second problem is also one of spurious conflicts. Often, during a merge, we want to apply only some of the changes implied by the merge. But this "cherry picking" of changes introduces a risk that either spurious conflicts will be interoduced to future merges, or genuine conflicts will be missed. Again, the challenge for versioning tools is to record enough history information to allow developers to work naturally, while still doing merges accurately and automatically.
The final problem is so difficult that most versioning tools don't even attempt to solve it. Only Smalltalkers would demand to be able to update a running program with new code, including the kernel on which the versioning tool its self is running! Though still quite experimental, Monticello 2 attempts to solve the "brain autosurgery" problem as well.
Bio: Colin Putney is a software developer at Quallaby Corporation, writing on network monitoring software in VisualWorks Smalltalk. He the author of OmniBrowser and co-author of Monticello, both open source development tools for Squeak Smalltalk. Though he has been programming for many years, he began working in Smalltalk in 2002.