p4 integrate
Synopsis
Open files for branching or merging.
p4 integrate can be abbreviated as p4 integ.
Syntax
p4 [g-opts] integrate [options] fromFile[revRange] toFile
p4 [g-opts] integrate [options] -b branch [-r] [toFile[RevRange] …]
p4 [g-opts] integrate [options] -b branch -s fromFile[revRange] [toFile …]
p4 [g-opts] integrate [options] -S stream [-r] [-P parent] [file[revRange] …]
options: -c changelist -Di -f -h -O options -n -m max -Roptions -q -v
Description
When you've made changes to a file that need to be propagated to another file, start the process with p4 integrate. The command includes four syntax variants, depending on whether the source and target files are specified using files, branches, or streams.
The simplest syntax variant is p4 integrate
fromFile toFile;
this lets the versioning service know that changes in
fromFile need to be propagated to
toFile, and has the following effects:
-
If
toFiledoesn't yet exist,fromFileis copied totoFile, thentoFileis opened forbranchin the client workspace. -
If
toFileexists, and shares a common ancestor withfromfileas above, thentoFileis opened forintegrate. You can then use p4 resolve to propagate all of, portions of, or none of the changes infromFiletotoFile.The p4 resolve command uses
fromFileastheirs,toFileasyours, and the file with the most edits in common as the base. -
If
fromFilewas deleted at its last revision (and all previous changes have already been integrated betweenfromFileandtoFile),toFileis opened fordeletein the client workspace. -
Whether you move files using p4 move, or whether you use native OS commands to rename files within your workspace (using p4 reconcile or p4 status to update your changelist to reflect the moves you made), p4 integrate automatically detects these actions, adjusts the source-to-target mappings appropriately, and schedules a filename resolve for each remapped file pair.
(Some of the available options modify this behavior. See Options for details.)
The process is complete when you
p4 submit
toFile to the depot.
To specify multiple files, use wildcards in
fromFile and toFile.
Any wildcards used in fromFile must match
identical wildcards in toFile. Perforce
compares the fromFile pattern to the
toFile pattern, creates a list of
fromFile/toFile
pairs, and performs an integration on each pair.
The syntax p4 integrate fromFiles
toFiles requires you to specify the
mapping between fromFiles and
toFiles each time changes need to be propagated
from fromFiles to
toFiles. Alternatively, use
p4 branch to store the
mappings between fromFiles and
toFiles in a branch
view, and then use p4 integrate -b
branchview whenever you need to
propagate changes between fromFiles and
toFiles.
By default, files that have been opened for branch or
integrate with p4 integrate are
read-only in the client workspace. You can edit these files before
submitting them using p4
edit to reopen the file for edit.
Whenever a toFile is integrated from a
fromFile, Perforce creates an
integration record in its database that describes
the effect of the integration. The integration record includes the names
of the fromFile, and
toFile, the revisions of
fromFile that were integrated into
toFile, the new revision number for
toFile, and the action that was taken at the
time of the integration. See p4
integrated for a full description of integration actions.
In most cases, p4 integrate performs a lazy copy; the
contents of the file are not duplicated on the server, because the
integration record contains sufficient information to reproduce the file.
Integrations performed on temporary object files (+S
and +S) do not produce a
lazy copy; the integrated ntempobj file consumes
additional diskspace on the server.
Options
Because some of the integration options add complexity to the integration process, we've divided the options into Basic Integration Options and Advanced Integration Options.
Basic Integration Options
|
|
Integrate the files using the
If a revision range is supplied with
|
|
|
Any |
|
|
Display the integrations this command would perform without actually performing them. |
|
|
Open files for branching without copying
Without this option, p4 integrate copies
newly-branched |
|
|
Open the If this option is not provided, the files are opened in the default changelist. |
|
|
Quiet mode; suppresses normal output messages about the list of files being integrated, copied, or merged. Messages regarding errors or exceptional conditions are displayed. |
|
|
See “Global Options”. |
Advanced Integration Options
|
|
In its simplest form, p4 integrate -b
In its more complicated form, when both
This variation of p4 integrate was written to provide some needed functionality to graphical Perforce applications; it is unlikely that you'll need to use this more complex form. |
|
|
Reverse the mappings in the branch view, integrating from the target files to the source files. |
|
|
The |
|
|
Force the integration on all revisions of
|
|
|
Don't automatically sync target files to the head revision before integrating. Use the have revision instead. |
|
|
Limit the command to integrating only the first
|
|
|
The |
|
|
The |
|
|
The |
|
|
The |
|
|
The |
|
|
Integrates a stream to its parent. To override the configured
parent and integrate to a different target stream, specify
|
Usage Notes
|
Can File Arguments Use Revision Specifier? |
Can File Arguments Use Revision Range? |
Minimal Access Level Required |
|---|---|---|
|
Yes |
Yes |
|
Examples
|
p4 integ //depot/dev/... //depot/rel2/... |
Branch or merge all files in
If there is no corresponding file in
|
|
p4 integ -b rel2br |
Branch or merge all |
|
p4 integ -b rel2br //depot/rel2/headers/... |
Branch or merge those |
|
p4 integ -b rel2br -r //depot/rel2/README |
Branch or merge |