Map different depot locations to the same workspace location

Overlay mappings enable you to map files from more than one depot directory to the same place in a workspace.

Overlay mappings are:

  • Useful for applying sparse patches in build environments.

  • Fundamental to Sparse streams.

To overlay the contents of a second depot path on top of a prior depot path mapped to the same workspace directory, use a plus sign (+) in front of the mapping.

Example:  Overlaying multiple directories in the same workspace

Maria wants to combine the files from her projects when they are synced to her workspace, so she constructs this view:

View:
    //Acme/proj1/...    //maria/project/...
    +//Acme/proj2/...   //maria/project/...

The overlay + mapping //Acme/proj2/... maps to //maria/project, and overlays the first mapping, which is //Acme/proj1/....

When multiple directories are overlaid in this way, only the last directory is writable. In this example, the files in //Acme/proj2/ are writeable and the files in //Acme/proj1/ are read-only.

Overlay mappings avoid conflicts because the files in the overlay take precedence:

  • If only //Acme/proj1/ReadMe.txt exists, //Acme/proj1/ReadMe.txt is mapped to the workspace.

  • If only //Acme/proj2/ReadMe.txt exists, //Acme/proj2/ReadMe.txt is mapped to the workspace.

  • If both //Acme/proj1/ReadMe.txt and //Acme/proj2/ReadMe.txt exist (not obliterated), even if one or both are deleted, //Acme/proj2/ReadMe.txt is mapped to the workspace.
    The files in the overlay take precedence and this applies even in the following cases:

    • //Acme/proj2/ReadMe.txt is deleted and //Acme/proj1/ReadMe.txt is not deleted

    • //Acme/proj1/ReadMe.txt is deleted and //Acme/proj2/ReadMe.txt is not deleted