private static void Revet() { var localPaths = Selection.assetGUIDs.Select(AssetDatabase.GUIDToAssetPath).Select(p => gitManager.ToLocalPath(p)).SelectMany(gitManager.GetPathWithMeta).ToArray(); if (externalManager.TakeRevert(localPaths)) { gitCallbacks.IssueAssetDatabaseRefresh(); gitManager.MarkDirtyAuto(localPaths); return; } try { gitManager.Repository.CheckoutPaths("HEAD", localPaths, new CheckoutOptions() { CheckoutModifiers = CheckoutModifiers.Force, OnCheckoutProgress = OnRevertProgress, OnCheckoutNotify = gitManager.CheckoutNotifyHandler, CheckoutNotifyFlags = CheckoutNotifyFlags.Updated }); } finally { EditorUtility.ClearProgressBar(); } gitCallbacks.IssueAssetDatabaseRefresh(); gitManager.MarkDirtyAuto(localPaths); var projectWindow = gitProjectOverlay.ProjectWindows.FirstOrDefault(reflectionHelper.HasFocusFucntion); if (projectWindow != null) { projectWindow.ShowNotification(new GUIContent("Revert Complete!")); } }
private void WatcherActivity(object sender, FileSystemEventArgs e) { string relativePath = gitManager.GetRelativePath(e.FullPath); if (!gitManager.Repository.Ignore.IsPathIgnored(relativePath) && !gitManager.IsDirectory(relativePath)) { if (e.ChangeType == WatcherChangeTypes.Renamed) { var relativeOldPath = ((RenamedEventArgs)e).OldFullPath; gitManager.MarkDirtyAuto(relativePath); gitManager.MarkDirtyAuto(relativeOldPath); } else { gitManager.MarkDirtyAuto(relativePath); } } }
internal void Build(FileStatus fileStatus, GenericMenu menu, GitDiffWindow window) { menu.AddItem(new GUIContent("Select All"), false, () => SelectFilteredCallback(fileStatus, window)); if (GitManager.CanStage(fileStatus)) { menu.AddItem(new GUIContent("Add All"), false, () => { string[] paths = window.GetStatusList().Where(s => s.State.IsFlagSet(fileStatus)).SelectMany(s => gitManager.GetPathWithMeta(s.LocalPath)).ToArray(); if (gitManager.Threading.IsFlagSet(GitSettingsJson.ThreadingType.Stage)) { gitManager.AsyncStage(paths).onComplete += (o) => { window.Repaint(); }; } else { GitCommands.Stage(gitManager.Repository, paths); gitManager.MarkDirtyAuto(paths); } window.Repaint(); }); } else { menu.AddDisabledItem(new GUIContent("Add All")); } if (GitManager.CanUnstage(fileStatus)) { menu.AddItem(new GUIContent("Remove All"), false, () => { string[] paths = window.GetStatusList().Where(s => s.State.IsFlagSet(fileStatus)).SelectMany(s => gitManager.GetPathWithMeta(s.LocalPath)).ToArray(); if (gitManager.Threading.IsFlagSet(GitSettingsJson.ThreadingType.Unstage)) { gitManager.AsyncUnstage(paths).onComplete += (o) => { window.Repaint(); }; } else { GitCommands.Unstage(gitManager.Repository, paths); gitManager.MarkDirtyAuto(paths); } window.Repaint(); }); } else { menu.AddDisabledItem(new GUIContent("Remove All")); } }