R – What are the various AccuRev version numbers


In AccuRev, when I look at the history for a file (in "history mode"), I see a list of the actions that were taken on the file. Each action has a number (#) and a version.

When I click on one of these actions, another list appears that shows each of the files that was involved in the action (including the one whose history I'm investigating). Each entry in this lower panel has a "virtual version" and a "real version".

The "version" in the top panel appears to be the same as the "virtual version" of my file in the lower panel.

What is the difference between the #, the virtual version, and the real version? Why do virtual and real versions have two numbers separated by a slash?

Best Solution

I found the AccuRev documentation to be confusing. Here is what I've come to understand:

# is the transaction number. Every action in an AccuRev depot is assigned a unique (auto-incrementing) transaction number. When multiple files are affected in one action, they share the transaction number.

"Virtual version" is the stream name (or number), followed by a slash, followed by the count of which version it is on that stream. So, the first version of helloworld.c on the IntegrationStream is IntegrationStream/1, or perhaps a number like 123/1. If AccuRev shows you a number you can look up the corresponding stream name. If multiple changes have been kept on the file in another stream and the file with multiple changes is finally promoted to this stream (IntegrationStream), this increments the number only by one. So the next version visible on this stream would be IntegrationStream/2 (or 123/2).

The "real version" refers to the first time that revision of the file was seen in the depot. This would be when the original keep operation was performed in someone's workspace. So if the version of the file seen in IntegrationStream/2 is the result of a keep in Proj_jsmith/7 which was promoted up to IntegrationStream, then the real version shows up as Proj_jsmith/7.

The ancestor, merge and patch version, if applicable, can be best understood by switching to "version browser mode" where the ancestor, merge, and patch lines are shown. Those columns in the lower panel grid refer to the versions that are associated to the given version of a file by preceding it as an ancestor or by being the source of a merge or patch.

Related Question