Helix Core is now P4. Product user interfaces will be updated soon. Learn more >>

P4 Server Administration Documentation | 2025.1

# Control which specs are versioned

By default, all specs (`//spec/...`) are versioned. You can use the `SpecMap` field to control which specs are versioned by adding lines in depot syntax that include (or exclude) paths in the spec depot.

For example, you can exclude the protections table from versioning by configuring your spec depot’s `SpecMap` field as follows:

    SpecMap:
        //spec/...
        -//spec/protect.p4s

Certain formtypes (for example, the protect, triggers, and typemap forms, plus license updates) might have several versions, but only have a single incidence of that type of form on the server. Such formtypes have no objectname. Referencing such formtypes in the SpecMap field of the spec depot requires the suffix .p4s or the wildcard *.

In an environment such as a build farm, in which large numbers of temporary client workspaces and/or labels are created, you can configure the spec depot to exclude them, while keeping track of other changes to client workspaces and labels. For example, a spec depot configured with the following spec mapping:

    SpecMap:
        //spec/...
        -//spec/client/build_ws_*
        -//spec/label/temp_label_*

will no longer track changes to client workspaces whose names begin with `build_ws_`, nor will it track changes to labels whose names begin with `temp_label_`.

Note that adding or changing the `SpecMap` field only affects future updates to the spec depot; files already stored in the spec depot are unaffected.

Your search for returned results