p4 label
Create or edit a label specification and its view.
Syntax
p4 [g-opts] label [-f -g] [-t template] labelname
p4 [g-opts] label -d [-f -g] labelname
p4 [g-opts] label -o [-t template] labelname
p4 [g-opts] label -i [-f -g]
Description
Use p4 label
to create a new label specification or
edit an existing label specification. A labelname
is
required.
Running p4 label
allows you to configure the mapping
that controls the set of files that are allowed to be included in the
label. After configuring the label, use p4 labelsync
or p4 tag
to tag files with the
label.
Labels can be either automatic or static. Automatic labels refer to the
revisions provided in the View:
and Revision:
fields. Static labels refer only to those specific revisions tagged by
the label by means of either the p4
labelsync
or p4
tag
commands.
Only the Owner:
of an unlocked
label can use
p4 labelsync
or p4 tag
to tag files with that
label. The owner of a group may be a single user or a group.
A branch, depot, label, and workspace may not share the same name.
Automatic labels
Automatic labels refer to the revisions provided in the
View:
and Revision:
fields of the label
specification. To create an automatic label, fill in the
Revision:
field of the p4 label
spec
with a revision specifier. When you sync a workspace to an automatic
label, the contents of the Revision:
field are applied to
every file in the View:
field.
Example Using an automatic label as an alias for a changelist number
Bruno is running a nightly build process, and has successfully built a
product as of changelist 1234. Rather than having to remember the
specific changelist for every night’s build, he types p4 label
nightly20111201
and uses the label’s
Revision:
field to automatically tag all files as of
changelist 1234 with the nightly20111201
label:
Label: nightly20111201 Owner: bruno Description: Nightly build process. Options: unlocked noautoreload View: //depot/... Revision: @1234
The advantage to this approach is that it is highly amenable to scripting, takes up very little space in the label table, and provides a way to easily refer to a nightly build without remembering which changelist number was associated with the night’s build process.
Example Referring specifically to the set of files submitted in a single changelist
A bug was fixed by means of changelist 1238, and requires a patch
label that refers to only those files associated with the fix. Bruno
types p4 label patch20111201
and uses the label’s
Revision:
field to automatically tag only those files
submitted in changelist 1238 with the patch20111201
label:
Label: patch20111201 Owner: bruno Description: Patch to 2011/12/01 nightly build. Options: unlocked noautoreload View: //depot/... Revision: @1238,1238
This automatic label refers only to those files submitted in changelist 1238.
Example Referring to the first revision of every file over multiple changelists
You can use revision specifiers other than changelist specifiers. In this example, Bruno specifies to the first revision (#1) of every file in a branch. Depending on how the branch was populated, these files could have been created through multiple changelists over a long period of time:
Label: first2.2 Owner: bruno Description: The first revision in the 2.2 branch Options: unlocked noautoreload View: //JamCode/release/jam/2.2/src/... Revision: "#1"
Because
Helix Server
forms use the #
character as a comment indicator, Bruno
has placed quotation marks around the #
to ensure that it
is parsed as a revision specifier.
Form Fields
Field Name | Type | Description |
---|---|---|
|
Read-only |
The label name as provided in the invoking command. Be aware of the Limitations on characters in filenames and entities. |
|
Writable, optional |
The label’s owner. By default, the user who created the label. Only the owner of a label can update which files are tagged with the label. The specified owner does not have to be a Helix Server user. You might want to use an arbitrary name if the user does not yet exist, or if you have deleted the user and need a placeholder until you can assign the spec to a new user. |
|
Read-only |
The date the label specification was last modified. |
|
Read-only |
The date and time the label was last accessed, either by running
|
|
Writable, optional |
An optional description of the label’s purpose. |
|
Writable |
Options to control behavior and storage location of labels
|
|
Writable |
An optional revision specification for an automatic label. If you use the |
|
Writable |
A list of depot files that can be tagged with this label. No
files are actually tagged until Unlike client views or branch views, which map one set of files to another, label views consist of a simple list of depot files. See Views for more information. |
|
Writable, optional |
If set, restricts usage of the label to the named server. If unset, this label may be used on any server. |
Options
|
Delete the named label if it’s |
|
Allow the |
|
In multi-server environments, use the Note
Global labels can be updated from edge servers using either p4 tag -g or p4 labelsync -g |
|
Read the label definition from standard input without invoking the editor. |
|
Write the label definition to standard output without invoking the editor. |
|
Copy label |
|
See Global options. |
Usage Notes
Can File Arguments Use Revision Specifier? | Can File Arguments Use Revision Range? | Minimal Access Level Required |
---|---|---|
N/A |
N/A |
|
- To create an automatic label, fill in the
Revision:
field of thep4 label
form with a revision specifier. When you sync a workspace to an automatic label, the contents of theRevision:
field are applied to every file in theView:
field. -
Local Label
Global Label
rpl.labels.global
is unset, which is 0rpl.labels.global
set to 1by default, labels are local to your edge server by default, labels are global -g
option provides access to global labels on the commit server-g
option allows the updating of local labelsIf a label exists on an edge server before rpl.labels.global is set, and you want that label to be available on both the edge server and the commit server, unloaded the label from the edge server and reload it on the commit server
Examples
|
List the file revisions tagged by
|
Related Commands
To synchronize a label with the client workspace. |
|
To list all labels known to the system |
|
To create a label and tag files with the label |