In the version graph, each object version with an emerging (solid or dashed) arrow must be frozen. The other object versions can be frozen or unfrozen. One purpose of Repository's versioning capability is to let you maintain multiple versions of an object so that you can remember what the object was like at different times. After you decide that a particular version of an object is worth remembering, you must protect that version of the object from further modification. You do this by freezing the object version. To freeze the object version, invoke the FreezeVersion method with an IRepositoryObjectVersion interface pointer to the version you want to preserve.
When you freeze a version of an object, you prevent any program from modifying any of its origin collections, or any of its non-annotational property values. A program can, however, modify a frozen object version in the following ways:
Repository provides two methods for you to manage the frozen status of an object version: