PATCH
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 |
---|---|
--output | Sets the output file of the patch command. |
--tool | Sets the application to use (diff or patch). |
source_spec | Full spec of a changeset or a branch. (Use 'cm help objectspec' to learn more about specs.) |
output_file | File to save the patch content. It no file is specified, the patch content will be printed on standard output. |
patch_file | Patch 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.)