Example #1
0
        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!"));
            }
        }
Example #2
0
        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);
                }
            }
        }
Example #3
0
        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"));
            }
        }