Incremental Label Families (Versioned Labels)

I sketch here a design to work around problems identified with labels in the context of (base) ClearCase. This will be implemented in a perl cleartool wrapper.

We saw why and how to make a distinction between fixed and floating labels. Floating labels are convenient in that moving them:

  • doesn't force to change the others' config specs (both a blessing and a curse)
  • involves only few elements (especially if one publishes in-place)
  • is compatible with locking and unlocking them, which gives a (local) guarantee of the completion of a labeling (pseudo-) transaction
The major problem with them is that they do not leave a trace of their previous positions.

Why not then maintain a family of label types, sharing a common prefix (the name of the floating type), and linking the type with this of a fixed type, which would be applied simultaneously.

As the floating label type would be unlocked, a new fixed type would be pushed on top of the previous one, which it would link to, replacing it in the floating type definition.

Each of the fixed type would be incremental, in that it would be applied only to the elements on which the floating would be moved. Any position in time of the floating label (usable in a one line rule) could be later reproduced by an list of rules using the fixed types, in the order of their application, as recorded in the chain. The equivalent timestamp would be recorded in the lock event (maybe an oversight: there may be valid reasons to unlock the label type, e.g. to create the next instance of the family and to link this one to it, or of course to add info to the comment).

-- MarcGirod - 03 Oct 2007



EditAttachPrint versionHistory: r4 < r3 < r2 < r1BacklinksRaw ViewRaw editMore topic actions