Stream paths control the files and paths that compose a stream and define how those files are propagated. Except for the mainline, each stream inherits its structure from its parent stream. To modify the structure of the child, you specify the paths as follows:
Type | Sync? | Submit? | Integrate to/from Parent? | Remarks |
---|---|---|---|---|
|
Y |
Y |
Y |
(Default) For files that are edited and propagated between parent and child streams. All files in a shared path are branched and, in general, shared paths are the least restricted. |
|
Y |
Y |
N |
For files that must not be propagated outside the stream but can be edited within it, such as binary build results. |
|
Y |
N |
N |
Files in this path are mapped as in the parent stream's view (the default) or to <depot_path> (optional); they are accessible to workspaces but cannot be submitted or integrated to the stream. If <view_path> is used, it does not necessarily import files from the parent of the stream it was used on; it imports the view. If the parent stream has a parent (grandparent) and the parent's stream view is shared, files are imported from the grandparent stream. An example would be the virtual stream created of a release or development stream, where files are imported from the mainline. If <depot_path> is used (for files that must be physically present in the stream but are never changed, such as with third-party libraries), it may include a changelist or automatic label specifier (that aliases a changelist) to limit the imported files to the revisions at that change or lower; clients of that stream are limited to seeing revisions at that point in time or lower within that depot path. Use the syntax @changelist#, as in:
|
|
Y |
Y |
N |
Functions like an import path, in that it can reference an
explicitly defined depot path, but unlike a standard import path,
you can submit changes to the files in an
|
|
N |
N |
N |
Files in the parent stream that must never be part of the child stream. |
In the following example, files in the src
path are not
submittable (and are imported from the parent stream’s view), files in
the lib
path are not submittable (and are imported from an
explicitly-specified location in the depot), and files in the
db
path can be edited and submitted in the stream, but can
never be copied to the parent:
Paths: share ... import src/... import lib/... //depot/lib3.0/... isolate db/...
The paths are used to generate the mappings for workspaces that are
associated with the stream. If the stream structure changes, the
workspace views are updated automatically and in fact cannot be altered
manually. If the stream is locked, only the stream owner (or stream
owners, if the Owner:
field of the stream is set to a group)
can edit the stream specification.
Stream specification can also remap file locations (so that a file in specified depot location is synced to a different location in the workspace) and screen out files according to file type. For example, to ensure that object files and executables are not part of the stream, add the following entries to the stream specification:
Ignored: .o .exe