public static bool SolveKDiffPath(GitCommands.GitCommands gitCommands) { string kdiff3path = gitCommands.GetGlobalSetting("mergetool.kdiff3.path"); if (string.IsNullOrEmpty(kdiff3path) || !File.Exists(kdiff3path)) { kdiff3path = @"c:\Program Files\KDiff3\kdiff3.exe"; if (string.IsNullOrEmpty(kdiff3path) || !File.Exists(kdiff3path)) { kdiff3path = @"c:\Program Files (x86)\KDiff3\kdiff3.exe"; if (string.IsNullOrEmpty(kdiff3path) || !File.Exists(kdiff3path)) { kdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", "") + "\\kdiff3.exe"; if (string.IsNullOrEmpty(kdiff3path) || !File.Exists(kdiff3path)) { kdiff3path = ""; return false; } } } } gitCommands.SetGlobalSetting("mergetool.kdiff3.path", kdiff3path); return true; }