private CommonLogic() { // For translation only Module = null !; RepoDistSettingsSet = null !; ConfigFileSettingsSet = null !; }
public CommonLogic(GitModule aModule) { Module = aModule; if (aModule != null) { var repoDistGlobalSettings = RepoDistSettings.CreateGlobal(false); var repoDistPulledSettings = RepoDistSettings.CreateDistributed(Module, false); var repoDistLocalSettings = RepoDistSettings.CreateLocal(Module, false); var repoDistEffectiveSettings = new RepoDistSettings( new RepoDistSettings(repoDistGlobalSettings, repoDistPulledSettings.SettingsCache), repoDistLocalSettings.SettingsCache); var configFileGlobalSettings = ConfigFileSettings.CreateGlobal(false); var configFileLocalSettings = ConfigFileSettings.CreateLocal(Module, false); var configFileEffectiveSettings = new ConfigFileSettings(configFileGlobalSettings, configFileLocalSettings.SettingsCache); RepoDistSettingsSet = new RepoDistSettingsSet( repoDistEffectiveSettings, repoDistLocalSettings, repoDistPulledSettings, repoDistGlobalSettings); ConfigFileSettingsSet = new ConfigFileSettingsSet( configFileEffectiveSettings, configFileLocalSettings, configFileGlobalSettings); } }
public static string FindDiffToolFullPath(ConfigFileSettingsSet settings, string difftoolText, out string exeName) { string diffTool = difftoolText.ToLowerInvariant(); exeName = GetDiffToolExeFile(difftoolText); switch (diffTool) { case "beyondcompare3": return(FindDiffToolFullPath(settings, exeName, "difftool.beyondcompare3.path", @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\")); case "beyondcompare4": return(FindDiffToolFullPath(settings, exeName, "difftool.beyondcompare4.path", @"Beyond Compare 4 (x86)\", @"Beyond Compare 4\")); case "diffmerge": return(FindDiffToolFullPath(settings, exeName, "difftool.diffmerge.path", @"SourceGear\Common\DiffMerge\", @"SourceGear\DiffMerge\")); case "kdiff3": string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", "") + "\\kdiff3.exe"; return(FindDiffToolFullPath(settings, exeName, "difftool.kdiff3.path", @"KDiff3\", regkdiff3path)); case "p4merge": return(FindDiffToolFullPath(settings, exeName, "difftool.p4merge.path", @"Perforce\")); case "meld": return(FindDiffToolFullPath(settings, exeName, "difftool.meld.path", @"Meld\", @"Meld (x86)\")); case "semanticdiff": string folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); folder = Path.Combine(folder, @"PlasticSCM4\semanticmerge\"); return(FindFileInFolders(exeName, folder)); case "tmerge": string difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(difftoolPath)) { // TortoiseGit <1.8 (2013), TortoiseSVN exeName = "TortoiseMerge.exe"; difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\", @"TortoiseSVN\bin\"); } return(difftoolPath); case "winmerge": return(FindDiffToolFullPath(settings, exeName, "difftool.winmerge.path", @"WinMerge\")); case "vsdiffmerge": return(FindDiffToolFullPath(settings, exeName, "difftool.vsdiffmerge.path", GetVsDiffMergePath())); case "vscode": return(FindDiffToolFullPath(settings, exeName, "difftool.vscode.path", @"Microsoft VS Code")); } exeName = difftoolText + ".exe"; return(GetFullPath(exeName)); }
public CommonLogic(GitModule module) { Requires.NotNull(module, nameof(module)); Module = module; var repoDistGlobalSettings = RepoDistSettings.CreateGlobal(false); var repoDistPulledSettings = RepoDistSettings.CreateDistributed(module, false); var repoDistLocalSettings = RepoDistSettings.CreateLocal(module, false); var repoDistEffectiveSettings = new RepoDistSettings( new RepoDistSettings(repoDistGlobalSettings, repoDistPulledSettings.SettingsCache, SettingLevel.Distributed), repoDistLocalSettings.SettingsCache, SettingLevel.Effective); var configFileGlobalSettings = ConfigFileSettings.CreateGlobal(false); var configFileLocalSettings = ConfigFileSettings.CreateLocal(module, false); var configFileEffectiveSettings = new ConfigFileSettings( configFileGlobalSettings, configFileLocalSettings.SettingsCache, SettingLevel.Effective); RepoDistSettingsSet = new RepoDistSettingsSet( repoDistEffectiveSettings, repoDistLocalSettings, repoDistPulledSettings, repoDistGlobalSettings); ConfigFileSettingsSet = new ConfigFileSettingsSet( configFileEffectiveSettings, configFileLocalSettings, configFileGlobalSettings); }
public CommonLogic(GitModule aModule) { Module = aModule; if (aModule != null) { var repoDistGlobalSettings = RepoDistSettings.CreateGlobal(false); var repoDistPulledSettings = RepoDistSettings.CreateDistributed(Module, false); var repoDistLocalSettings = RepoDistSettings.CreateLocal(Module, false); var repoDistEffectiveSettings = new RepoDistSettings( new RepoDistSettings(repoDistGlobalSettings, repoDistPulledSettings.SettingsCache), repoDistLocalSettings.SettingsCache); var configFileGlobalSettings = ConfigFileSettings.CreateGlobal(false); var configFileLocalSettings = ConfigFileSettings.CreateLocal(Module, false); var configFileEffectiveSettings = new ConfigFileSettings(configFileGlobalSettings, configFileLocalSettings.SettingsCache); RepoDistSettingsSet = new RepoDistSettingsSet( repoDistEffectiveSettings, repoDistLocalSettings, repoDistPulledSettings, repoDistGlobalSettings); ConfigFileSettingsSet = new ConfigFileSettingsSet( configFileEffectiveSettings, configFileLocalSettings, configFileGlobalSettings); } }
public CommonLogic([CanBeNull] VsrModule module) { Module = module; if (module != null) { var repoDistGlobalSettings = RepoDistSettings.CreateGlobal(false); var repoDistPulledSettings = RepoDistSettings.CreateDistributed(Module, false); var repoDistLocalSettings = RepoDistSettings.CreateLocal(Module, false); var repoDistEffectiveSettings = new RepoDistSettings( new RepoDistSettings(repoDistGlobalSettings, repoDistPulledSettings.SettingsCache, SettingLevel.Distributed), repoDistLocalSettings.SettingsCache, SettingLevel.Effective); var configFileGlobalSettings = ConfigFileSettings.CreateGlobal(false); var configFileLocalSettings = ConfigFileSettings.CreateLocal(Module, false); var configFileEffectiveSettings = new ConfigFileSettings( configFileGlobalSettings, configFileLocalSettings.SettingsCache, SettingLevel.Effective); RepoDistSettingsSet = new RepoDistSettingsSet( repoDistEffectiveSettings, repoDistLocalSettings, repoDistPulledSettings, repoDistGlobalSettings); ConfigFileSettingsSet = new ConfigFileSettingsSet( configFileEffectiveSettings, configFileLocalSettings, configFileGlobalSettings); } }
public static string FindDiffToolFullPath(ConfigFileSettingsSet settings, string difftoolText, out string exeName) { string diffTool = difftoolText.ToLowerInvariant(); switch (diffTool) { case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "difftool.beyondcompare3.path")); exeName = "bcomp.exe"; return FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\"); case "beyondcompare4": string bcomppath4 = UnquoteString(GetGlobalSetting(settings, "difftool.beyondcompare4.path")); exeName = "bcomp.exe"; return FindFileInFolders(exeName, bcomppath4, @"Beyond Compare 4 (x86)\", @"Beyond Compare 4\"); case "kdiff3": string kdiff3path = UnquoteString(GetGlobalSetting(settings, "difftool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", "") + "\\kdiff3.exe"; exeName = "kdiff3.exe"; return FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path); case "meld": string difftoolMeldPath = UnquoteString(GetGlobalSetting(settings, "difftool.meld.path")); string programFilesMeldPath = @"Meld\meld\"; exeName = "meld.exe"; return FindFileInFolders(exeName, difftoolMeldPath, programFilesMeldPath); case "semanticdiff": exeName = "semanticmergetool.exe"; string folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); folder = Path.Combine(folder, @"PlasticSCM4\semanticmerge\"); return FindFileInFolders(exeName, folder); case "tmerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) { exeName = "TortoiseMerge.exe"; difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) difftoolPath = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } return difftoolPath; case "winmerge": exeName = "winmergeu.exe"; string winmergepath = UnquoteString(GetGlobalSetting(settings, "difftool.winmerge.path")); return FindFileInFolders("winmergeu.exe", winmergepath, @"WinMerge\"); } exeName = difftoolText + ".exe"; return GetFullPath(exeName); }
private static string FindDiffToolFullPath(ConfigFileSettingsSet settings, string exeName, string settingsKey, params string[] pathToSearch) { string exePathFromSettings = UnquoteString(GetGlobalSetting(settings, settingsKey)); var paths = new string[pathToSearch.Length + 1]; paths[0] = exePathFromSettings; Array.Copy(pathToSearch, 0, paths, 1, pathToSearch.Length); return(FindFileInFolders(exeName, paths)); }
public static string FindDiffToolFullPath(ConfigFileSettingsSet settings, string difftoolText, out string exeName) { string diffTool = difftoolText.ToLowerInvariant(); switch (diffTool) { case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "difftool.beyondcompare3.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\")); case "kdiff3": string kdiff3path = UnquoteString(GetGlobalSetting(settings, "difftool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", "") + "\\kdiff3.exe"; exeName = "kdiff3.exe"; return(FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path)); case "meld": string difftoolMeldPath = UnquoteString(GetGlobalSetting(settings, "difftool.meld.path")); string programFilesMeldPath = @"Meld\meld\"; exeName = "meld.exe"; return(FindFileInFolders(exeName, difftoolMeldPath, programFilesMeldPath)); case "tmerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) { exeName = "TortoiseMerge.exe"; difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) { difftoolPath = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } } return(difftoolPath); case "winmerge": exeName = "winmergeu.exe"; string winmergepath = UnquoteString(GetGlobalSetting(settings, "difftool.winmerge.path")); return(FindFileInFolders("winmergeu.exe", winmergepath, @"WinMerge\")); } exeName = difftoolText + ".exe"; return(GetFullPath(exeName)); }
private static string GetGlobalSetting(ConfigFileSettingsSet settings, string setting) { return(settings.GlobalSettings.GetValue(setting)); }
public static string FindMergeToolFullPath(ConfigFileSettingsSet settings, string mergeToolText, out string exeName) { string mergeTool = mergeToolText.ToLowerInvariant(); switch (mergeTool) { case "araxis": exeName = "Compare.exe"; return(FindFileInFolders(exeName, @"Araxis\Araxis Merge\", @"Araxis 6.5\Araxis Merge\", @"Araxis\Araxis Merge v6.5\")); case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "mergetool.beyondcompare3.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\")); case "beyondcompare4": string bcomppath4 = UnquoteString(GetGlobalSetting(settings, "mergetool.beyondcompare4.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath4, @"Beyond Compare 4 (x86)\", @"Beyond Compare 4\")); case "diffmerge": exeName = "DiffMerge.exe"; return(FindFileInFolders(exeName, @"SourceGear\Common\DiffMerge\", @"SourceGear\DiffMerge\")); case "kdiff3": exeName = "kdiff3.exe"; string kdiff3path = UnquoteString(GetGlobalSetting(settings, "mergetool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", ""); if (regkdiff3path != "") { regkdiff3path += "\\" + exeName; } return(FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path)); case "p4merge": string p4mergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.p4merge.path")); exeName = "p4merge.exe"; return(FindFileInFolders(exeName, p4mergepath, @"Perforce\")); case "semanticmerge": exeName = "semanticmergetool.exe"; string folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); folder = Path.Combine(folder, @"PlasticSCM4\semanticmerge\"); return(FindFileInFolders(exeName, folder)); case "tortoisemerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) { exeName = "TortoiseMerge.exe"; path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) { path = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } } return(path); case "winmerge": string winmergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.winmerge.path")); exeName = "winmergeu.exe"; return(FindFileInFolders(exeName, winmergepath, @"WinMerge\")); case "vsdiffmerge": string vsdiffmergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.vsdiffmerge.path")); string regvsdiffmergepath = GetVisualStudioPath() + "vsdiffmerge.exe"; exeName = "vsdiffmerge.exe"; return(FindFileInFolders(exeName, vsdiffmergepath, regvsdiffmergepath)); } exeName = mergeToolText + ".exe"; return(GetFullPath(exeName)); }
public static string FindDiffToolFullPath(ConfigFileSettingsSet settings, string difftoolText, out string exeName) { string diffTool = difftoolText.ToLowerInvariant(); switch (diffTool) { case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "difftool.beyondcompare3.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\")); case "beyondcompare4": string bcomppath4 = UnquoteString(GetGlobalSetting(settings, "difftool.beyondcompare4.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath4, @"Beyond Compare 4 (x86)\", @"Beyond Compare 4\")); case "kdiff3": string kdiff3path = UnquoteString(GetGlobalSetting(settings, "difftool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", "") + "\\kdiff3.exe"; exeName = "kdiff3.exe"; return(FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path)); case "p4merge": string p4mergepath = UnquoteString(GetGlobalSetting(settings, "difftool.p4merge.path")); exeName = "p4merge.exe"; return(FindFileInFolders(exeName, p4mergepath, @"Perforce\")); case "meld": string difftoolMeldPath = UnquoteString(GetGlobalSetting(settings, "difftool.meld.path")); string programFilesMeldPath = @"Meld\meld\"; exeName = "meld.exe"; return(FindFileInFolders(exeName, difftoolMeldPath, programFilesMeldPath)); case "semanticdiff": exeName = "semanticmergetool.exe"; string folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); folder = Path.Combine(folder, @"PlasticSCM4\semanticmerge\"); return(FindFileInFolders(exeName, folder)); case "tmerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) { exeName = "TortoiseMerge.exe"; difftoolPath = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (String.IsNullOrEmpty(difftoolPath)) { difftoolPath = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } } return(difftoolPath); case "winmerge": exeName = "winmergeu.exe"; string winmergepath = UnquoteString(GetGlobalSetting(settings, "difftool.winmerge.path")); return(FindFileInFolders("winmergeu.exe", winmergepath, @"WinMerge\")); case "vsdiffmerge": string vsdiffmergepath = UnquoteString(GetGlobalSetting(settings, "difftool.vsdiffmerge.path")); string regvsdiffmergepath = GetVisualStudioPath() + "vsdiffmerge.exe"; exeName = "vsdiffmerge.exe"; return(FindFileInFolders(exeName, vsdiffmergepath, regvsdiffmergepath)); } exeName = difftoolText + ".exe"; return(GetFullPath(exeName)); }
public static string FindMergeToolFullPath(ConfigFileSettingsSet settings, string mergeToolText, out string exeName) { string mergeTool = mergeToolText.ToLowerInvariant(); switch (mergeTool) { case "araxis": exeName = "Compare.exe"; return FindFileInFolders(exeName, @"Araxis\Araxis Merge\", @"Araxis 6.5\Araxis Merge\", @"Araxis\Araxis Merge v6.5\"); case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "mergetool.beyondcompare3.path")); exeName = "bcomp.exe"; return FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\"); case "beyondcompare4": string bcomppath4 = UnquoteString(GetGlobalSetting(settings, "mergetool.beyondcompare4.path")); exeName = "bcomp.exe"; return FindFileInFolders(exeName, bcomppath4, @"Beyond Compare 4 (x86)\", @"Beyond Compare 4\"); case "diffmerge": exeName = "DiffMerge.exe"; return FindFileInFolders(exeName, @"SourceGear\DiffMerge\"); case "kdiff3": exeName = "kdiff3.exe"; string kdiff3path = UnquoteString(GetGlobalSetting(settings, "mergetool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", ""); if (regkdiff3path != "") regkdiff3path += "\\" + exeName; return FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path); case "p4merge": string p4mergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.p4merge.path")); exeName = "p4merge.exe"; return FindFileInFolders(exeName, p4mergepath, @"Perforce\"); case "semanticmerge": exeName = "semanticmergetool.exe"; string folder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData); folder = Path.Combine(folder, @"PlasticSCM4\semanticmerge\"); return FindFileInFolders(exeName, folder); case "tortoisemerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) { exeName = "TortoiseMerge.exe"; path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) path = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } return path; case "winmerge": string winmergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.winmerge.path")); exeName = "winmergeu.exe"; return FindFileInFolders(exeName, winmergepath, @"WinMerge\"); } exeName = mergeToolText + ".exe"; return GetFullPath(exeName); }
private static string GetGlobalSetting(ConfigFileSettingsSet settings, string setting) { return settings.GlobalSettings.GetValue(setting); }
public static string FindMergeToolFullPath(ConfigFileSettingsSet settings, string mergeToolText, out string exeName) { string mergeTool = mergeToolText.ToLowerInvariant(); switch (mergeTool) { case "araxis": exeName = "Compare.exe"; return(FindFileInFolders(exeName, @"Araxis\Araxis Merge\", @"Araxis 6.5\Araxis Merge\", @"Araxis\Araxis Merge v6.5\")); case "beyondcompare3": string bcomppath = UnquoteString(GetGlobalSetting(settings, "mergetool.beyondcompare3.path")); exeName = "bcomp.exe"; return(FindFileInFolders(exeName, bcomppath, @"Beyond Compare 3 (x86)\", @"Beyond Compare 3\")); case "diffmerge": exeName = "DiffMerge.exe"; return(FindFileInFolders(exeName, @"SourceGear\DiffMerge\")); case "kdiff3": exeName = "kdiff3.exe"; string kdiff3path = UnquoteString(GetGlobalSetting(settings, "mergetool.kdiff3.path")); string regkdiff3path = GetRegistryValue(Registry.LocalMachine, "SOFTWARE\\KDiff3", ""); if (regkdiff3path != "") { regkdiff3path += "\\" + exeName; } return(FindFileInFolders(exeName, kdiff3path, @"KDiff3\", regkdiff3path)); case "p4merge": string p4mergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.p4merge.path")); exeName = "p4merge.exe"; return(FindFileInFolders(exeName, p4mergepath, @"Perforce\")); case "tortoisemerge": exeName = "TortoiseGitMerge.exe"; // TortoiseGit 1.8 use new names string path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) { exeName = "TortoiseMerge.exe"; path = FindFileInFolders(exeName, @"TortoiseGit\bin\"); if (string.IsNullOrEmpty(path)) { path = FindFileInFolders(exeName, @"TortoiseSVN\bin\"); } } return(path); case "winmerge": string winmergepath = UnquoteString(GetGlobalSetting(settings, "mergetool.winmerge.path")); exeName = "winmergeu.exe"; return(FindFileInFolders(exeName, winmergepath, @"WinMerge\")); } exeName = mergeToolText + ".exe"; return(GetFullPath(exeName)); }