private void ConfigureMergeSettings(string keyName = null) { var unityYamlMergeExec = Environment.UnityApplicationContents.Combine("Tools", "UnityYAMLMerge" + Environment.ExecutableExtension); var yamlMergeCommand = $"'{unityYamlMergeExec}' merge -h -p --force %O %B %A %A"; keyName = keyName ?? "unityyamlmerge"; GitClient.SetConfig($"merge.{keyName}.name", "Unity SmartMerge (UnityYamlMerge)", GitConfigSource.Local).Catch(e => { Logger.Error(e, "Error setting merge." + keyName + ".name"); return(true); }).RunSynchronously(); GitClient.SetConfig($"merge.{keyName}.driver", yamlMergeCommand, GitConfigSource.Local).Catch(e => { Logger.Error(e, "Error setting merge." + keyName + ".driver"); return(true); }).RunSynchronously(); GitClient.SetConfig($"merge.{keyName}.recursive", "binary", GitConfigSource.Local).Catch(e => { Logger.Error(e, "Error setting merge." + keyName + ".recursive"); return(true); }).RunSynchronously(); }
public void SetupGit(GitInstaller.GitInstallationState state) { if (!state.GitIsValid || !state.GitLfsIsValid) { if (!state.GitExecutablePath.IsInitialized) { Logger.Warning(Localization.GitNotFound); } else if (!state.GitLfsExecutablePath.IsInitialized) { Logger.Warning(Localization.GitLFSNotFound); } else if (state.GitVersion < Constants.MinimumGitVersion) { Logger.Warning(String.Format(Localization.GitVersionTooLow, state.GitExecutablePath, state.GitVersion, Constants.MinimumGitVersion)); } else if (state.GitLfsVersion < Constants.MinimumGitLfsVersion) { Logger.Warning(String.Format(Localization.GitLfsVersionTooLow, state.GitLfsExecutablePath, state.GitLfsVersion, Constants.MinimumGitLfsVersion)); } return; } Environment.GitInstallationState = state; Environment.User.Initialize(GitClient); if (firstRun) { if (Environment.RepositoryPath.IsInitialized) { UpdateMergeSettings(); GitClient.LfsInstall() .Catch(e => { Logger.Error(e, "Error running lfs install"); return(true); }) .RunSynchronously(); } if (Environment.IsWindows) { var credentialHelper = GitClient.GetConfig("credential.helper", GitConfigSource.Global) .Catch(e => { Logger.Error(e, "Error getting the credential helper"); return(true); }).RunSynchronously(); if (string.IsNullOrEmpty(credentialHelper)) { Logger.Warning("No Windows CredentialHelper found: Setting to wincred"); GitClient.SetConfig("credential.helper", "wincred", GitConfigSource.Global) .Catch(e => { Logger.Error(e, "Error setting the credential helper"); return(true); }) .RunSynchronously(); } } } }