internal override void OnGUI(Rect rect, Event current) { GitSettingsJson settings = GitManager.Settings; if (settings == null) { return; } EditorGUI.BeginChangeCheck(); settings.ExternalsType = (GitSettings.ExternalsTypeEnum)EditorGUILayout.EnumMaskField(GitGUI.GetTempContent("External Program Uses", "Use an external program for more advanced features like pushing, pulling, merging and so on"), settings.ExternalsType); if (EditorGUI.EndChangeCheck()) { settings.MarkDirty(); } EditorGUI.BeginChangeCheck(); int newSelectedIndex = EditorGUILayout.Popup(GitGUI.GetTempContent("External Program", "The name of the External program to use"), GitExternalManager.SelectedAdapterIndex, GitExternalManager.AdapterNames); settings.ExternalProgram = GitExternalManager.AdapterNames[newSelectedIndex].text; if (EditorGUI.EndChangeCheck()) { GitExternalManager.SetSelectedAdapter(newSelectedIndex); settings.MarkDirty(); } EditorGUILayout.HelpBox("Using external programs is always recommended as UniGit is still in development.", MessageType.Info); }
public bool Revert(IEnumerable <string> paths) { string path = paths.FirstOrDefault(); if (path != null) { return(GitExternalManager.CallProccess("GitExtensions.exe", "revert " + path)); } return(false); }
public GitExternalsSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitExternalManager externalManager, UniGitData data, GitSettingsJson gitSettings, GitCallbacks gitCallbacks, GitInitializer initializer) : base(new GUIContent("Externals", "External Programs Helpers"), gitManager, settingsWindow, data, gitSettings, gitCallbacks, initializer) { this.externalManager = externalManager; }
public void Conflict(string left, string right, string ansestor, string merge, Type assetType) { if (assetType == typeof(Texture) || assetType.IsSubclassOf(typeof(Texture))) { GitExternalManager.CallProccess("TortoiseGitIDiff.exe", "-right:\"{1}\" -left:\"{2}\" -merged:\"{3}\"", ansestor, right, left, merge); } else { GitExternalManager.CallProccess("TortoiseGitMerge.exe", "-base:\"{0}\" -mine:\"{1}\" -theirs:\"{2}\" -merged:\"{3}\"", ansestor, right, left, merge); } }
public void Diff(string leftTitle, string leftPath, string rightTitle, string rightPath, Type assetType) { if (assetType == typeof(Texture) || assetType.IsSubclassOf(typeof(Texture))) { GitExternalManager.CallProccess("TortoiseGitIDiff.exe", "-left:\"{0}\" -lefttitle:\"{1}\" -right:\"{2}\" -righttitle:\"{3}\"", leftPath, leftTitle, rightPath, rightTitle); } else { GitExternalManager.CallProccess("TortoiseGitMerge.exe", "-base:\"{0}\" -basename:\"{1}\" -mine:\"{2}\" -minename:\"{3}\" -base", leftPath, leftTitle, rightPath, rightTitle); } }
public GitBranchesSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitExternalManager externalManager, InjectionHelper injectionHelper, UniGitData data, ILogger logger, GitSettingsJson gitSettings, GitCallbacks gitCallbacks, GitInitializer initializer) : base(new GUIContent("Branches"), gitManager, settingsWindow, data, gitSettings, gitCallbacks, initializer) { this.injectionHelper = injectionHelper; this.externalManager = externalManager; this.logger = logger; }
public bool CallProccess(string name, string parameters) { string fullPath = GitExternalManager.GetFullPath(name); if (fullPath != null) { ProcessStartInfo startInfo = new ProcessStartInfo { CreateNoWindow = false, UseShellExecute = false, FileName = fullPath, WorkingDirectory = gitManager.RepoPath, WindowStyle = ProcessWindowStyle.Hidden, RedirectStandardOutput = true, Arguments = parameters }; try { // Start the process with the info we specified. // Call WaitForExit and then the using statement will close. using (Process exeProcess = Process.Start(startInfo)) { if (exeProcess == null) { return(false); } exeProcess.WaitForExit(); return(true); } } catch { return(false); } } return(false); }
public bool Switch() { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\"", "switch", GitManager.RepoPath); return(true); }
public bool Diff(string path, Commit start, Commit end) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\" -startrev:\"{2}\" -endrev:\"{3}\"", "diff", path, start.Sha, end.Sha); return(true); }
public GitExternalsSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitExternalManager externalManager) : base(new GUIContent("Externals", "External Programs Helpers"), gitManager, settingsWindow) { this.externalManager = externalManager; }
public bool Diff(string path, Commit end) { return(GitExternalManager.CallProccess("GitExtensions.exe", "viewdiff")); }
public bool Conflict(string path) { return(GitExternalManager.CallProccess("GitExtensions.exe", "mergeconflicts")); }
public bool Commit(string message) { return(GitExternalManager.CallProccess("GitExtensions.exe", "commit")); }
public bool Merge() { return(GitExternalManager.CallProccess("GitExtensions.exe", "mergetool")); }
public void Merge() { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\"", "merge", GitManager.RepoPath); }
public GitBranchesSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitExternalManager externalManager) : base(new GUIContent("Branches"), gitManager, settingsWindow) { this.externalManager = externalManager; }
public bool Blame(string path) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\"", "blame", path); return(true); }
public bool Reset(Commit commit) { return(GitExternalManager.CallProccess("GitExtensions.exe", "reset")); }
public bool Commit(string message) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\" -logmsg:\"{2}\"", "commit", GitManager.RepoPath, message); return(true); }
public bool Pull() { return(GitExternalManager.CallProccess("GitExtensions.exe", "pull")); }
public bool Fetch(string remote) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -remote:\"{1}\"", "fetch", remote); return(true); }
public bool Fetch(string remote) { return(GitExternalManager.CallProccess("GitExtensions.exe", "pull --fetch")); }
public bool Revert(IEnumerable <string> paths) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\"", "revert", string.Join("*", paths.ToArray())); return(true); }
public bool Diff(string path, Commit start, Commit end) { return(GitExternalManager.CallProccess("GitExtensions.exe", "filehistory " + path)); }
public bool Conflict(string path) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\"", "conflicteditor", path); return(true); }
public bool Blame(string path) { return(GitExternalManager.CallProccess("GitExtensions.exe", "blame " + path)); }
public bool Diff(string path, string path2) { GitExternalManager.CallProccess("TortoiseGitProc.exe", "-command:\"{0}\" -path:\"{1}\" -path2:\"{2}\"", "diff", path, path2); return(true); }
public bool Switch() { return(GitExternalManager.CallProccess("GitExtensions.exe", "checkout")); }
private void DoBranch(Branch branch, BranchCollection branchCollection) { bool isHead = branch.IsCurrentRepositoryHead; GUIContent titleContent = GitGUI.GetTempContent(branch.FriendlyName); if (isHead) { titleContent.text += " (HEAD)"; } if (branch.IsRemote) { titleContent.image = GitGUI.IconContentTex("ToolHandleGlobal"); } GUILayout.Label(titleContent, isHead ? "IN BigTitle" : "ShurikenModuleTitle", GUILayout.ExpandWidth(true)); int selectedRemote = Array.IndexOf(remoteCacheList, branch.Remote); EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(GitGUI.GetTempContent("Remote")); if (remoteNames != null) { EditorGUI.BeginChangeCheck(); int newSelectedRemote = EditorGUILayout.Popup(selectedRemote, remoteNames); if (EditorGUI.EndChangeCheck() && selectedRemote != newSelectedRemote) { branchCollection.Update(branch, (u) => { u.Remote = remoteCacheList[newSelectedRemote].Name; u.UpstreamBranch = branch.CanonicalName; }); } } else { GUILayout.Button(new GUIContent("No Remotes")); } EditorGUILayout.EndHorizontal(); EditorGUILayout.TextField(GitGUI.GetTempContent("Upstream Branch"), branch.UpstreamBranchCanonicalName); EditorGUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = remoteCacheList != null && remoteCacheList.Length < selectedRemote; if (GUILayout.Button(GitGUI.GetTempContent("Save", "Send branch changes to selected remote."), "minibuttonleft")) { branchCollection.Update(branch, (u) => { u.Remote = remoteCacheList[selectedRemote].Name; u.UpstreamBranch = branch.CanonicalName; }); } GUI.enabled = !branch.IsRemote && !isHead; Rect switchButtonRect = GUILayoutUtility.GetRect(GitGUI.GetTempContent("Switch"), "minibuttonmid"); if (GUI.Button(switchButtonRect, GitGUI.GetTempContent("Switch"), "minibuttonmid")) { if (GitExternalManager.TakeSwitch()) { AssetDatabase.Refresh(); GitManager.MarkDirty(); } else { PopupWindow.Show(switchButtonRect, new GitCheckoutWindowPopup(branch)); } } GUI.enabled = !isHead; if (GUILayout.Button(GitGUI.GetTempContent("Delete", branch.IsCurrentRepositoryHead ? "Can not delete head branch" : ""), "minibuttonmid")) { if (EditorUtility.DisplayDialog("Delete Branch", "Are you sure you want do delete a branch? This action can not be undone.", "Delete", "Cancel")) { try { GitManager.Repository.Branches.Remove(branch); GitManager.MarkDirty(true); } catch (Exception e) { Debug.Log("Could not delete branch: " + branch.CanonicalName); Debug.LogException(e); } } } GUI.enabled = !branch.IsRemote; if (GUILayout.Button(GitGUI.GetTempContent("Reset", "Reset branch properties."), "minibuttonright")) { branchCollection.Update(branch, (u) => { u.Remote = ""; u.UpstreamBranch = ""; }); } GUI.enabled = true; GUILayout.FlexibleSpace(); EditorGUILayout.EndHorizontal(); }