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

P4 CLI Documentation | 2025.2

# Merge changes

After you create branches, you might need to propagate changes between them. For example, if you fix a bug in a release branch, you probably want to incorporate the fix back into your main codeline. To propagate selected changes between branched files, you use the p4 merge and p4 resolve commands, as follows:

1. Issue the `p4 merge` command to schedule the files for resolve.

2. Issue the `p4 resolve` command to propagate changes from the source files to the target files.

   To propagate individual changes, edit the merge file or use a merge program. The changes are made to the target files in the client workspace.

3. Submit the changelist containing the resolved files.

Example: Propagating changes between branched files

Bruno has fixed a bug in the release 2.2 branch of the Jam project and needs to integrate it back to the main codeline. From his home directory, Bruno types the following:

    p4 merge //JamCode/release/jam/2.2/src/Jambase //JamCode/dev/jam/Jambase

He sees the following message:

    //JamCode/dev/jam/Jambase#134 - merge from ////JamCode/release/jam/2.2/src/Jambase#9

The file has been scheduled for resolve. He types `p4 resolve`, and the standard merge dialog appears on his screen.

    //JamCode/dev/jam/Jambase - merging depot/release/jam/2.2/src/Jambase#9
    Diff chunks: 0 yours + 1 theirs + 0 both + 0 conflicting
    Accept(a) Edit(e) Diff(d) Merge (m) Skip(s) Help(?) [at]:

He resolves the conflict. When he’s done, the result file overwrites the file in his workspace. The changelist containing the file must be submitted to the depot.

To run the `p4 merge` or p4 copy commands, you must have P4 Server `write` permission on the target files, and `read` access on the source files. (See the P4 Server Administration Documentation for information on P4 Server permissions.)

By default, a file that has been newly created in a client workspace by `p4 merge` cannot be edited before being submitted. To edit a newly merged file before submission, resolve it, then issue the `p4 edit` command.

If the range of revisions being merged includes deleted revisions (for example, a file was deleted from the depot, then re-added), you can specify how deleted revisions are merged using the `-Di` option.

In this section:

Your search for returned results