CM wiki web
Sketching an Implementation of Incremental Types
Rationale and design for this idea, in the context of label types. I think of using it to branch types as well, but the urgency is as explained, for labels.I noticed only now that something very close to this (for fixed labels only, but with the necessary config spec magic) is in use as part of UCM! I published a cleartool wrapper, which will support the following (in addition to the somewhat related ##:BranchOff: root functionality). Working on this in a Google code site. The user will have the possibility to set a view attribute such as:
##:IncrementalLabels: XX@/vob/tag
(a label type, in one vob).
In UCM, the issue of vob context is solved with explicit prefixing, with a syntax involving the vobuuid to work interoperably.
I'll leave it to applying incremental label of one type over whatever resource is needed, thus I don't need a prefix. Anyway, interleaving different hierachies would not work.
There will also be an additional flag to
mklbtype: -family, and a new predefined hyperlink type: PrevInc, which will be injected into vobs as needed.
Creating a new -family label (for now) type will actually create 2 types: a floating one, as requested, and a fixed 'shadow' one, using the name of the previous as a prefix, and a running number,
in a sortable format (maybe just _000) as postfix.
The floating label type will have an PrevInc hyperlink pointing to the latter.
Enabling incremental type families in one's view will drive the following: - Using the floating label in one's config spec will be as per default
- Moving it however will also drop instances of the topmost fixed label type
- Locking the floating type will lock the fixed one as well, unlocking it will create a new type, linked to the previous, and which will replace it in as the top the floating.
- Using a fixed type of a family in one's config spec will generate an ordered list of rules using the instances of the linked list of fixed types.
- Moving the floating label leaves a track which can be used to reproduce a configuration of the past
- Applying labels is cheap, because incremental.
mklbtype -rep) may be considered, in order to remove unused fixed types, or to combine ones.
-- MarcGirod - 10 Oct 2007
