November 10, 2014

Client ChangeView: a window to the past

Helix Core

Perforce IdentifierAs of the 2014.2 release, the ability to limit your view of the depot by changelist number, previously only available to import paths in streams, has been extended to "classic" client specs with user-defined view mappings.

This feature can be used simply by adding a ChangeView field to your client spec:

        //depot/some/path/[email protected]

The ChangeView is independent of the View field that specifies depot-to-client mappings, and it can apply to files that are not otherwise mapped to your client. When a ChangeView is applied to a path, file revisions that were submitted in later changelists than the one you specify are not visible -- it's almost as if there were an implicit @change on every command you run within that path. Like the View, the ChangeView can contain any number of lines -- it may not contain exclusions, but later lines override earlier lines where they overlap.

A path that is subject to a ChangeView is read-only, similar to stream import paths, in order to minimize opportunities for confusion when submitting a file with invisible changes (which will also include the new changelist as soon as it's been submitted). As with import paths, this is intended for use with files that you do not typically modify yourself, such as external dependencies, that you might want to "freeze" at a particular point in time for stability.

Grab the latest release of Perforce now.