Symbolic links in snapshot views

Behavior of symbolic links in snapshot views differs between Linux® and the UNIX® system and the Windows® system.

Behavior on Linux® and the UNIX® system

Snapshot views created from Linux® or the UNIX® system maintain standard symbolic link behavior. In the context of loading a snapshot view, links are treated as VOB links (those that point to objects inside the VOB) and non-VOB links (those that point outside the VOB). Hard VOB links are followed; symbolic links are copy-created. If a VOB link cannot be resolved, an error results. Non-VOB links are resolved, if possible, but it is not an error if they cannot be resolved.

Tip: When you create a snapshot view from an HCL VersionVault client on Linux® or the UNIX® system, it is assumed that the file system that contains the view supports symbolic links. If your file system does not support symbolic links, errors are reported if VOB links are encountered during the update operation.

On Linux® or the UNIX® system, if a load rule selects a symbolic link, the link and the link target are copied into the snapshot view (regardless of whether a load rule selects the link target). As with dynamic views, you cannot check out a symbolic link; you must check out the symbolic link target.

Each time a load rule selects a hard link in a snapshot view, the element is loaded in the view as a standard file instead of being created as a hard link.

Behavior on Windows® systems

Snapshot views created from an HCL VersionVault host running Windows® software do not support links. VOB symbolic link behavior is approximated in the following ways:
  • If a load rule selects a symbolic link, the link target is copied into the view at the link path.

    Do not load a linked directory more than once in your view unless it is necessary for build purposes. Although multiply-loaded elements are tracked accurately, you may become confused and modify the wrong copy of a file, losing information upon checkin.

    When you are choosing elements to load, note the element icons displayed in the GUI. A diagonal arrow on the element icon indicates a symbolic link, as in the following example:

  • You cannot check out a file element from a symbolic link path; you must check out the link target.

    In HCL VersionVault Windows Explorer, the shortcut menu for a symbolic link includes the Symlinks command, which changes your context to the directory containing the target (Warp to Symlink Target) or provides commands to perform HCL VersionVault operations on the target without changing your context (Symlink Target Operations). Use one of these commands to find and check out the link target. When you check in the modified link target, all associated symbolic links loaded in your view are updated.

    Unlike directory link targets, a file link target can be checked out only if it is loaded in your view.

  • The Add to Source Control command (available from HCL VersionVault graphic user interfaces) checks out, modifies, and checks in the link target directory whether you issue the command from a directory symbolic link or from the link target (and whether or not the target directory is loaded into the view).

    If you issue the cleartool checkout command from a symbolic link directory, you must use the following syntax:

    cleartool checkout .

    A checkout command issued for the current directory checks out the link target whether the target directory is loaded into the view.

    However, if you use the cleartool checkout dirname form of the command to check out a different directory, dirname must be a link target.

    When either you explicitly check in a link target directory or a link target directory is implicitly checked in, the associated symbolic links that are loaded in your view are updated.

  • If you hijack a file symbolic link, the Update Tool detects the hijack. However, you cannot check out the hijacked symbolic link. To add your hijacked changes to the VOB, you must check out and modify the link target.

Each time a load rule selects a hard link, the element is loaded in the view as a standard file. Be careful if you use hard links in snapshot views because you can lose data.