
The above is a version history of the file foobar.c that is stored in the ClearCase archive. The numbered circles represent various versions of this file. The rectangles on the top labled "/main" and "/foo" represent ClearCase branches. Under ClearCase, all files have a branch called /main. There are six versions of this file off of the "main" branch. There is also a side branch called "foo" with two versions of this file. Branch /foo branched off of the first version of foobar.c under the branch /main.
You can refer to each version of the file by stating it's branch and version number. For example, the last version off of the main branch is called version /main/5. The last version off of branch foo is called /main/foo/1. This says that foo is a branch off of branch main and the last version on that branch is version 1. Notice that version number on version numbering starts with 0.
The curved arrow from /main/foo/1 to /main/foo/5 is a merge arrow. It is showing that /main/foo/1 was merged onto the main branch creating version /main/5. This was done by merging /main/foo/1 into /main/4. For convience purposes, the version number LATEST always refers to the last version on the branch. For example, /main/foo/LATEST is /main/foo/1 and /main/LATEST is /main/5.
You can also place labels onto various versions of the element tree. For example, /main/2 is labeled REL1. If this is element foobar.c, you could refer to any version of this file by specifying the file's name, two at signs, and the version. For example, the fifth version off of the main branch for foobar.c is foobar.c@@/main/5 or foobar.c@@/main/LATEST. Notice too that I could refer to the second version off of the main branch of file foobar.c as either foobar.c@@/main/2 or foobar.c@@/REL1.
Another way to say this is foobar.c@@/main/REL1 since the label REL1 is on the branch /main. Although it is very much discouraged, it is possible to define a label in such a way so it can be placed on more than one branch of the same file, for example both /main/2 and /main/foo/1 could have the label REL1 attached to them. If this is the case, you must then specify the branch when refering to the version with the label. You would have to say foobar.c@@/main/REL1 or foobar.c@@/main/foo/REL1. However, even in this way, you cannot have two of the same label on the same branch of the file.
In ClearCase the file archive is refered to as the element. You can refer to the element as the file's name plus two at signs (@@). For example, this element is called foobar.c@@. It is encouraged under ClearCase (although not enforced) that label names be in all capital letters and branch names be in all lowercase letters. This makes it easy to tell that foobar.c@@/main/REL1 is a version of the element and foobar.c/main/rel1 is a branch of the element.