private void BuildCommitMenu(GenericMenu commitMenu, GitDiffWindow window) { if (gitManager == null) { return; } commitMenu.AddItem(new GUIContent("✔ Commit"), false, () => CommitCallback(window)); if (!gitSettings.ExternalsType.IsFlagSet(GitSettingsJson.ExternalsTypeEnum.Commit)) { commitMenu.AddItem(new GUIContent("➔ Commit And Push"), false, () => CommitAndPushCallback(window)); } else { commitMenu.AddDisabledItem(new GUIContent("✔ Commit And Push")); } commitMenu.AddSeparator(""); commitMenu.AddItem(new GUIContent("Commit Message/✖ Clear"), false, window.ClearCommitMessage); commitMenu.AddItem(new GUIContent("Commit Message/📖 Read from file"), gitSettings.ReadFromFile, () => ToggleReadFromFile(window)); if (File.Exists(initializer.GetCommitMessageFilePath(gitSettings.ActiveSubModule))) { commitMenu.AddItem(new GUIContent("Commit Message/✎ Open File"), false, OpenCommitMessageFile); } else { commitMenu.AddDisabledItem(new GUIContent("Commit Message/⤷ Open File")); } commitMenu.AddItem(new GUIContent("Commit Message/♺ Reload"), false, window.ReadCommitMessage); }
private static void SaveCommitMessageToFile(GitInitializer initializer, GitSettingsJson gitSettings, string message) { try { string settingsFolder = initializer.GitSettingsFolderPath; if (!Directory.Exists(settingsFolder)) { Directory.CreateDirectory(settingsFolder); } var commitMessageFilePath = initializer.GetCommitMessageFilePath(gitSettings.ActiveSubModule); var commitMessageFileDirectory = Path.GetDirectoryName(commitMessageFilePath); if (!Directory.Exists(commitMessageFileDirectory)) { Directory.CreateDirectory(commitMessageFileDirectory); } File.WriteAllText(commitMessageFileDirectory, message); } catch (UnauthorizedAccessException e) { Debug.LogWarning("Commit message file is forced to read only."); } catch (Exception e) { #if UNITY_EDITOR Debug.LogError("Could not save commit message to file. Saving to Prefs"); Debug.LogException(e); #endif } }