Details
-
Sub-task
-
Status: Open
-
Major
-
Resolution: Unresolved
-
None
-
None
-
None
-
None
Description
Currently, a Shelf holds multiple Versions, and each version is a checkpoint.
A Shelf provides nothing special. (It currently holds a single log message (and other rev-props) shared by all versions, but that effect can be trivially replicated.)
A simpler, more modular design would invert the relationship, so a series of checkpoints would be managed by a higher layer as multiple shelves, linked together by a common name and incorporating a version identifier into the underlying Shelf object's name.
That design would also match the typical manual method of storing patch files named "my-fix-1.patch", "my-fix-2.patch", etc.
Any future attempt to share the base tree states between versions of one shelf should be equally well able to share it between different shelves.