Edit | Rename | Changes | History | Upload | Download | Back to Top |
It also contains some very interesting stuff wrt to publishing into multiple branches at once.
This paper only describes a part of the whole EPOS project, over the course of a decade or so these people have done some facinating agile process modeling and tool generating experiments with a strong bent towards CM. Well worth investigating if you have the time.
I had to re-read this article a couple of times before I could connect all the dots, so let me present you a Smalltalk oriented metaphore that might help you to understand the lowest layer quicker than me:
Consider the simplistic case where you want to extract a single .st file that represents all the code to be present in an image from the repository.
View the repository as a single .st file where each and every line is wrapped in a C-preprosessor conditional:
#if conjunction1 first line of Smalltalk code #endif #if conjunction2 second line of Smalltalk code #endif #if conjunction3 anther version of second line of Smalltalk code #endif etc...
The conjunctions are of the form ( !option1 & option2 & !option3 & option4 .....)
Extracting the monoversion .st from the multiversion repository .st is then analogous to running the C preprocessor over the repository .st with the various options predefined to express the version to extract.
The per-line chunks in the repository is what the paper calls selective deltas.
Get the document at CiteSeer: A Layered Architecture for Uniform Version Management
Abstract:
Version management is a key part of software configuration management.
A big variety of version models has been realized in both commercial systems and research prototypes. These version models differ with respect to:
Instead, we define a base model that is built on a small number of concepts. Specific version models may be expressed in terms of this base model. Our approach to uniform version management is distinguished by its underlying layered architecture.
Unlike the main stream of software configuration management systems, our instrumentable version engine is completely orthogonal to the data model used for representing software objects and their relationships. In addition, we introduce version rules at the bottom of the layered architecture and employ them as a uniform mechanism for expressing different version models.
This contrasts to the main stream solution, where a specific version model --usually version graphs-- is deeply built into the system and version rules are dependent on this model.
Edit | Rename | Changes | History | Upload | Download | Back to Top |