15.3 MODEL VERSIONING
In moving from a single-user, separate-?¬?le approach to a multiuser repository, many
practices need to be reexamined. A repository allows true reuse of elements across
multiple models and multiple users. The smallest actionable unit is thus no longer a
?¬?le??”often corresponding to a model??”but an object or even property in a model.
Locking and versioning thus move away from the compromises required by ?¬?les
toward new solutions.
Looking at the origins of ?¬?le-based version control from the days of C and
FORTRAN, the real units of reuse tended to be functions within a ?¬?le, rather than the
?¬?le itself. The units of reuse do not directly correspond to the larger units of versioning
or locking.
With object-oriented languages, we tend to think of the class as the unit of reuse,
and often a class corresponds to a ?¬?le. However, little actual reuse takes place at the
level of the class itself: normally, just a single instantiation operation refers to it.
Instead, the majority of references are to the operations and attributes within the class,
so the situation is largely unchanged from early version control systems.
In models in a repository, the units of reuse correspond directly to the units of
locking. In general, however, they do not correspond to visible units of versioning: the
repository always re?¬‚ects the current state of the whole project.
Pages:
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781