The links created with the ln command (VOB symbolic links or VOB hard links) are cataloged in directory versions, in the same way as elements. By default, a link can be created in a directory only if that directory is checked out. A VOB link becomes visible to those using other views only after you have checked in the directory in which you created the link. (ln appends an appropriate default checkin comment to the directory version.)
In a snapshot view, this command executes the update command for elements affected by the link operation.
A VOB symbolic link (created when you use the –slink option) is a separate, unversioned object. It contains a character string, the link text, in the form of a path name. You can attach attributes and hyperlinks, but not version labels, to a VOB symbolic link.
You cannot check out a VOB symbolic link. To revise a VOB symbolic link, check out its directory, remove the link with rmname, create a new link, and check in the directory. (If you use the –nco option, the checkout and checkin steps are not required.)
Use relative VOB symbolic links instead of absolute VOB symbolic links. Absolute VOB symbolic links require you to use absolute path names from the VOB tag level; if the VOB mount point should change, the link becomes invalid.
VOB symbolic links that point to files outside the ClearCase MVFS are not supported by the Windows operating system. Although the ln command creates the link, the link is not displayed in a standard directory listing; it is displayed only by the cleartool ls command. (This is true for all symbolic links that do not point to a valid MVFS path name.)
Use relative VOB symbolic links instead of absolute VOB symbolic links. Absolute VOB symbolic links require you to use absolute path names from the view tag level and are therefore valid only in the view in which they were created.
A VOB hard link (created if you omit the –slink option) is an additional name for an existing element. Use VOB symbolic links instead of VOB hard links whenever possible.
In UNIX and Linux, you cannot make a VOB hard link to a derived object, but you can make additional UNIX and Linux system hard links (created with ln(1)) to a derived object. The links are visible in your view, but are not part of the VOB. For more information, see the IBM Rational ClearCase Guide to Building Software.
When you check out a VOB hard link (that is, check out the element it names), all the other names for the element are listed by (cleartool) ls as checkedout but removed and are not displayed in Windows Explorer. The element is checked out, but there are no view-private files having the other names. The command lscheckout –all lists the checked-out element only once.
After you check in the element or cancel the checkout (using uncheckout), the other names for the element are listed by (cleartool) ls as disputed checkout, checkedout but removed and do not appear in Windows Explorer. To update the state of the other names, use the setcs –current command.
The merge and findmerge commands can merge both file elements and directory elements. Merging versions of a directory element can involve creating a VOB hard link to a directory or removing a VOB hard link from a directory:
ClearCase allows creation of hard links to directories only in this directory-merge context: the two links (both named testing in the example above) must occur in versions of the same directory element (/src in the example above).
cleartool ln –s file.txt dir1
Link created: "dir1/file.txt".cd dir1
ls –l
lrwxrwxrwx 1 smg user 8 2007-05-12T13:36 file.txt -> file.txt
The following command creates symbolic links that are not circular:
cleartool ln –s ../file.txt .
Link created: "./file.txt".cd dir1 ls –l
lrwxrwxrwx 1 smg user 8 2007-05-12T13:36 file.txt -> ../file.txt
The UNIX system and Linux examples in this section are written for use in csh. If you use another shell, you may need to use different quoting and escaping conventions.
The Windows examples that include wildcards or quoting are written for use in cleartool interactive mode. If you use cleartool single-command mode, you may need to change the wildcards and quoting to make your command interpreter process the command appropriately.
In cleartool single-command mode, cmd-context represents the UNIX system and Linux shells or Windows command interpreter prompt, followed by the cleartool command. In cleartool interactive mode, cmd-context represents the interactive cleartool prompt.
cmd-context ln -slink msg.c messages.c Link created: "messages.c".
cmd-context ln *.h subd
Link created: "subd/hello.h".
Link created: "subd/msg.h".
Link created: "subd/util.h".
cmd-context ln -slink -nco hello.c ..\vobs_hw@@\main\3\hello.c
Modify checked-in directory version “\vobs_hw@@\main\3”? [no]
yes Link created: “..\vobs_hw@@\main\3\hello.c”.