The RESERVE command checks out a version of a controlled element. A controlled element is one of the following: o An element you created using Oracle CDD/Repository inside a context o An element you have controlled with the CONSTRAIN command You must have a context set to issue the RESERVE command. If you are issuing the RESERVE command in a distributed environment, you must issue the ENTER command before issuing the RESERVE command. The RESERVE command creates a copy of the immutable version that is stored in the base partition associated with your context. This copy is called a ghost; it is reserved to your context and you can modify it. In general, the ghost has a version number that is one number higher than that of the original version in the partition. For example, if you reserve PRODUCT(1), the ghost of this version is called PRODUCT(2). If, however, you specify the creation of a parallel line of development (or branch), the ghost becomes the first version in that branch line. For example, if you reserve PRODUCT(2) with a /BRANCH=AUDITOR qualifier, the ghost copy of this version is called PRODUCT(2:AUDITOR:1). If you specify the /BRANCH qualifier, you can reserve any version of a controlled element in a line of descent that is available for reservation. If an element is uncontrolled, an error occurs if you attempt to reserve any version but the latest version in a line of descent. An error occurs if you issue the /BRANCH qualifier with a branch name already in use. An error occurs if you attempt to reserve a child without previously reserving its owners. Use the /CLOSURE qualifier to reserve as many elements as necessary. An error occurs if you attempt to reserve a version of an uncontrolled element that has already been reserved. An element can have only one outstanding reservation. When you finish modifying your working copy of a version, you use the REPLACE command to check in the new version to the partition or the repository. If you decide to discard the changes you have made to your working copy, use the UNRESERVE command to cancel your reservation and destroy your copy. If you decide to merge a branch line that you have created back into the main line of descent, use the MERGE command. When reserve is invoked with a branch name specified, the new ghost version is created with a name that incorporates the branch name and is properly linked to the element from which the branch line originates. If the target of a reserve notice is involved in one or more correspondence relationships, those relationships may be propagated to the new version.