diff --git a/docs/diff-tool.md b/docs/diff-tool.md index 22d35f53..e251516f 100644 --- a/docs/diff-tool.md +++ b/docs/diff-tool.md @@ -716,11 +716,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` @@ -740,11 +740,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` @@ -762,11 +762,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` diff --git a/src/DiffEngine.Tests/diffTools.include.md b/src/DiffEngine.Tests/diffTools.include.md index 3f27245f..f6243f7b 100644 --- a/src/DiffEngine.Tests/diffTools.include.md +++ b/src/DiffEngine.Tests/diffTools.include.md @@ -581,11 +581,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` @@ -605,11 +605,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` @@ -627,11 +627,11 @@ DiffTools.UseOrder(DiffTool.P4Merge); * Example target on left arguments for text: ``` - -C utf8-bom "tempFile.txt" "targetFile.txt" + -C utf8-bom "targetFile.txt" "tempFile.txt" ``` * Example target on right arguments for text: ``` - -C utf8-bom "targetFile.txt" "tempFile.txt" + -C utf8-bom "tempFile.txt" "targetFile.txt" ``` * Example target on left arguments for binary: ``` diff --git a/src/DiffEngine/Implementation/P4Merge.cs b/src/DiffEngine/Implementation/P4Merge.cs index 1a1770d5..cb562a04 100644 --- a/src/DiffEngine/Implementation/P4Merge.cs +++ b/src/DiffEngine/Implementation/P4Merge.cs @@ -3,11 +3,14 @@ static partial class Implementation public static Definition P4Merge() { var launchArguments = new LaunchArguments( + // p4merge takes the two files positionally as `left right`, so the target leads for + // target-on-left and the temp file leads for target-on-right. Same order for text and + // binary; only the encoding switch differs. Left: (temp, target) => { if (FileExtensions.IsTextFile(temp)) { - return $"-C utf8-bom \"{temp}\" \"{target}\""; + return $"-C utf8-bom \"{target}\" \"{temp}\""; } return $"\"{target}\" \"{temp}\""; @@ -16,7 +19,7 @@ public static Definition P4Merge() { if (FileExtensions.IsTextFile(temp)) { - return $"-C utf8-bom \"{target}\" \"{temp}\""; + return $"-C utf8-bom \"{temp}\" \"{target}\""; } return $"\"{temp}\" \"{target}\"";