How is changeset ancestry implemented for CVS?
About Changeset Ancestry in FishEye
When FishEye indexes a CVS respository, it synthesizes a changeset identifier to group file-level changes into a single consistent changeset. The grouping is described in this FAQ: How does FishEye calculate CVS changesets?.
Changeset ancestry was added in FishEye 2.6. Changeset ancestry refers to the linking of a changeset to a preceding/parent changeset(s). This allows you to view the development progress of your repository using the Commit Graph (see Viewing the Commit Graph for a Repository).
Changeset Ancestry for CVS
For CVS respositories, changeset ancestry is implemented, as follows:
- For all but the first change on a branch, FishEye chooses the most recent change on that branch as the parent changeset.
- For the first change on a branch, FishEye examines the branchpoints of all files in the branch and chooses the latest changeset that affected any such files as the parent changeset.
This approach ensures that a branch, whose first change is to a file which is very old, is not considered to have been branched at the time that file was last changed. It is considered to be branched at the last change to the repository instead.