Node: Parent-Version attribute, Next: , Previous: Merge-Parents attribute, Up: Descriptors



Parent-Version attribute

This attribute, along with the Merge-Parents attribute described above, tracks the history of a project version: Parent-Version records the version from which a project version originally descended, and Merge-Parents records versions against which it was merged.

Parent-Version P M N Attribute

This has the same form as the Project-Version attribute (see Project-Version attribute), except that for an initial version (unrelated to any prior version), each of P, M, and N is -*-. The Parent-Version defines the ancestors of a version in the repository as follows:

  • A version is an ancestor of itself.
  • The Parent-Version attribute of a version names an ancestor of that version.
  • Each element in the Merge-Parent list names an ancestor of that version.
  • Ancestry is transitive: any ancestor of one of V's ancestors is also an ancestor of V. The number of Parent-Version or Merge-Parent entries that must be traversed to find an ancestor of V is called the distance of that ancestor from V.

Given two versions in a repository, any version that is an ancestor to both is called a common ancestor. A common ancestor whose distance from both is minimal is called a nearest common ancestor. It is possible for there to be more than one nearest common ancestor. If so, commands attempting to determine the nearest common ancestor will either abort or ask the user for help.

Each prcs checkin sets Parent-Version to name the Project-Version attribute of the version from which the newly checked-in version is derived. Additionally, it sets the New-Merge-Parents attribute to the Merge-Parents attribute.