

You may need to adjust the command path if your TortoiseSVN installation is somewhere else. %9 = Merged file label (The label for the %4 file)Ĭombine those together and we can easily get what we need.

%8 = Base file label (The label for the %3 file).%7 = Modified file label (The label for the %2 file).%6 = Original file label (The label for the %1 file).%5 = Diff options (any additional command-line options you want to pass to your diff tool - this comes into play only when using “tf diff /options” from the command-line).%4 = Merged file (The output file for the merge operation - the filename that the merge tool should write to).This doesn’t mean it’s the version the changes were based from, since this may be a cherry-pick merge) %3 = Base file (in the 3-way merge operation, the file which both “theirs” and “yours” are derived from - the common ancestor.%2 = Modified file (in diff, the post-changes file, in merge the “yours” file - the base file with “your” changes applied).%1 = Original file (in diff, the pre-changes file, in merge, the “server” or “theirs” file, the file that is the base file after “their” changes were applied).James Manning wrote a post on his blog that tells what the tokens are: The next step is to figure out what the command line substitutions are for the TFS tools. Note: If /createunifieddiff is set, all other parameters are ignored.
#Using diffmerge with tortoisesvn Patch#
If /outfile is not set, a file save dialog is shown so the user can choose the location to save the patch file. The target path is set with /outfile:”path_to_resulting_patchfile”. Switches the left and right view of the specified two files to diff.Ĭreates a unified diff file (patch file) of two files specified with /origfile:”path_to_original_file” and /modifiedfile:”path_to_modified_file”. The path to the patch/diff file to apply to a directory.įorces TortoiseMerge to start with the one-way view instead of the view the user specified in the settings. If you don’t set this path, then TortoiseMerge will try to find the path itself to match the paths in the patch file, but that can take very long. The path where a patch should be applied to. This is shown in the view title instead of the file path. If this is not set, then TortoiseMerge will ask the user where to save the result. This is the filepath where the result of the merge/conflict resolving is saved.

Specifies the resulting merged file used in three way diffs. For two way diffs, this is the right file. Specifies the mine file used in three way diffs, displayed in the right pane. Specifies the theirs file used in three way diffs, displayed in the left pane. For three way diffs it is shown in a tooltip for the view title. For two way diffs, this is the left file. This is the common ancestor of the files being diffed, although it is not shown in a separate window. Specifies the base file used in three way diffs. Shows a dialog box with the most important command line switches. The TortoiseSVN docs have an Appendix that tells all the command line switches for it: Step 1 was figuring out how TortoiseMerge works.
#Using diffmerge with tortoisesvn how to#
I really like the diff/merge tool that comes with TortoiseSVN, so I decided to figure out how to use it. It is okay, but it has some strange usability issues that don’t make it a natural fit for me. I started out playing with KDiff3, which I used a long time ago. Now that I’m in VSTS, I’ve been using the merge tool that comes with TFS, which is 2-pane, or BeyondCompare2, which is also 2-pane, and I don’t like it very much. When I was a Subversion user, I always used TortoiseMerge, the merge tool that comes with TortoiseSVN. I find that merging without a real 3-pane merging tool is painful at best.
