From 6c25e66498b80b3e6adb9c17e1568c1fe6428879 Mon Sep 17 00:00:00 2001 From: Brian Dukes Date: Wed, 25 Jul 2018 06:46:50 -0500 Subject: [PATCH] Add WinMerge to known diff tools (#510) /u keeps WinMerge from adding the files to the MRU list /wl makes the left file (received) read-only src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs --- .../ApprovePublicAPI.ShouldlyApi.approved.cs | 1 + src/Shouldly/Configuration/KnownDiffTools.cs | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs b/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs index 76e307bab..63b7096e0 100644 --- a/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs +++ b/src/Shouldly.Tests/ConventionTests/ApprovePublicAPI.ShouldlyApi.approved.cs @@ -684,6 +684,7 @@ public class KnownDiffTools public readonly Shouldly.Configuration.DiffTool KDiff3; public readonly Shouldly.Configuration.DiffTool P4Merge; public readonly Shouldly.Configuration.DiffTool TortoiseGitMerge; + public readonly Shouldly.Configuration.DiffTool WinMerge; public KnownDiffTools() { } public static Shouldly.Configuration.KnownDiffTools Instance { get; } } diff --git a/src/Shouldly/Configuration/KnownDiffTools.cs b/src/Shouldly/Configuration/KnownDiffTools.cs index 8ad3c4341..611f44bef 100644 --- a/src/Shouldly/Configuration/KnownDiffTools.cs +++ b/src/Shouldly/Configuration/KnownDiffTools.cs @@ -19,6 +19,8 @@ public class KnownDiffTools [UsedImplicitly] public readonly DiffTool TortoiseGitMerge = new DiffTool("Tortoise Git Merge", @"TortoiseGit\bin\TortoiseGitMerge.exe", TortoiseGitMergeArgs); [UsedImplicitly] + public readonly DiffTool WinMerge = new DiffTool("WinMerge", @"WinMerge\WinMergeU.exe", WinMergeArgs); + [UsedImplicitly] public readonly DiffTool CurrentVisualStudio = new CurrentlyRunningVisualStudioDiffTool(); public static KnownDiffTools Instance { get; } = new KnownDiffTools(); @@ -57,6 +59,14 @@ static string TortoiseGitMergeArgs(string received, string approved, bool approv return $"\"{received}\" \"{approved}\""; } + + static string WinMergeArgs(string received, string approved, bool approvedExists) + { + if (!approvedExists) + File.AppendAllText(approved, string.Empty); + + return $"/u /wl \"{received}\" \"{approved}\" \"{approved}\""; + } } } #endif