Documentation

Support

Unity Version Control

PATCH

Generate and apply patch files with the Unity Version Control CLI.
Read time 1 minuteLast updated 11 days ago

Description

Generates a patch file from a spec or applies a generated patch to the current workspace.

Usage

cm patch <source_spec> [<source_spec>] [--output=<output_file>] [--tool=<path_to_diff>]
(Generates a patch file that contains the differences of a branch, a changeset, or the differences between changesets. It also tracks differences of text and binary files.)
cm patch --apply <patch_file> [--tool=<path_to_patch>]
(Allows to apply the contents of a generated patch file in the current workspace.)

Options

Option / Argument

Description

--outputSets the output file of the patch command.
--toolSets the application to use (diff or patch).
source_specFull spec of a changeset or a branch. (Use 'cm help objectspec' to learn more about specs.)
output_fileFile to save the patch content. It no file is specified, the patch content will be printed on standard output.
patch_filePatch file to apply in the current workspace.

Help

Limitations

If the output patch file already exists, the command will not overwrite it. When applying a patch, the command will not apply changes to modified files if they are not present on disk.

Important

This command requires Diff and Patch tools, publicly available at http://gnuwin32.sourceforge.net/packages/patch.htm and http://gnuwin32.sourceforge.net/packages/diffutils.htm Once installed, it's recommended to add their location to the PATH environment variable.

Examples

cm patch cs:4@default@localhost:8084
(Prints on console the differences of cset 4 in unified format.)
cm patch br:/main --output=file.patch
(Generates a patch file with the differences of branch "main".)
cm patch br:/main --output=file.patch --tool=C:\gnu\diff.exe
(Same as above, using a custom exe.)
cm patch cs:2@default cs:4@default
(Prints on console the differences between csets 2 and 4 in unified format.)
cm patch --apply file.patch --tool=C:\gnu\patch.exe
(Applies the patch in 'file.patch' to the local workspace with a custom exe.)