Perforce 2002.2 User's Guide | ||
<< Previous Chapter Changelists |
Table of Contents Index Perforce on the Web |
Next Chapter >> Branching |
Labels provide a method of naming important combinations of file revisions for later reference. For example, the file revisions that comprise a particular release of your software might be given the label release2.0.1. At a later time, you can retrieve all the files in that label into a client workspace with a single command.
Label names share the same namespace as clients, branches, and depots. Thus, a label name cannot be the same as any existing client, branch, or depot name.
Ed has finished the first version of filtering in elm. He wants to create a label that references
only those files in the filter and hdrs subdirectories. He wants to name the label
filters.1. He types p4 label filters.1 and fills in the resulting form as follows:
Label: filters.1 |
When he quits from the editor, the label is created.
Before following this example further, it's worth stopping for a moment to examine exactly what has and hasn't been accomplished. So far, a label called filters.1 has been created. It can contain files only from the depot's elm_proj filter and hdrs subdirectories. But the label filters.1 is empty; it contains no file references. It will be loaded with its file references with p4 labelsync.
The View: field limits the files that are included in the label. These files must be specified by their location in the depot; this view differs from other views in that only the depot side of the view is specified.
The locked / unlocked option in the Options: field can prevent p4 labelsync from overwriting previously synced labels (this is described in "Preventing Accidental Overwrites of a Label's Contents" on page 94).
p4 labelsync [-a -d -n] -l labelname [filename...]
The rules followed by labelsync to include files in a label are as follows:
If you are not the owner of a label, you may (assuming you have sufficient permissions) make yourself the owner by running:
p4 label labelname
and changing the Owner: field to your userid in the p4 label form. Similarly, you may unlock a label by setting the Options: field (also in the p4 label form) to unlocked.
then all the files mapped by the label view are listed in the label. The revisions added to the label are those last synced into the client; these revisions can be seen in the p4 have list. Calling p4 labelsync this way replaces all existing file references with the new ones.
Ed has created a label called filters.1 as specified above, and now he wants to load the
filters.1 label with the proper file revisions. He types:
Perforce adds those file revisions to the label that are those contained in the intersection of the
label view and the current client have list.
After performing the above labelsync command, Ed finds that the file filter/filter.c
is buggy. He fixes it, submits the new version, and wants to replace the old revision of this file
in the label filters.1 with the new revision. From the filter subdirectory, he types
p4 labelsync -l filters.1 filter/filter.c
The head revision of filter.c replaces the revision that had been previously included in the
label.
Ed realizes that the version of filter/audit.c contained in his label filters.1 is not the
version he wants to include in the label. He'd prefer to include revision 12 of that file. From
the main Elm directory, he types
p4 labelsync -l filters.1 filter/audit.c#12
This revision of audit.c replaces the revision that had been previously included in the label.
Lisa wants to retrieve all the files listed in Ed's filters.1 label into her client workspace.
She can type:
p4 sync //depot/[email protected]
Instead, she's interested in seeing only the header files from that label, so she types:
p4 sync //depot/elm_proj/hdrs/*@filters.1
All the files in the subdirectory hdrs that are within the intersection of Ed's filters.1 label
and Lisa's client view are retrieved into her workspace. But there is another effect as well: files
that are not in the intersection of the label's contents and //depot/elm_proj/hdrs/* are
deleted from her workspace.
If p4 sync @labelname is called with no file parameters, all files in the client that are not in the label will be deleted from the client. If this command is called with file arguments, as in p4 sync files@labelname, then the client workspace at the intersection of the depot, the client workspace view, and the file arguments will be updated to match the contents of the depot at that intersection.
p4 label -d labelname
You can delete files from labels with:
p4 labelsync -d -l labelname filepattern
To delete all the files from the label's file list, but leave the empty label in the Perforce database, use:
Perforce 2002.2 User's Guide | ||
<< Previous Chapter Changelists |
Table of Contents Index Perforce on the Web |
Next Chapter >> Branching |