Coordinating concurrent development
Abstract
Development of any large system or artifact requires the coordination of many developers. Development activities can occur concurrently. The goal of coordination is to enhance, not restrict, developer productivity, while ensuring that concurrent development activities do not clash with one another. This paper presents a formal model of concurrent development, in which development consists of a collection of modification activities that change files, and merges that combine the changes. We define a notion of consistency called coordination consistency that ensures that changes are not inadvertently destroyed and that the changes of each modification activity are correctly propagated to subsequent modification activities. We briefly present a set of protocols for concurrent development using a hierarchy of stores that ensure coordination consistency.