Пример #1
0
        private static void Revet()
        {
            var paths = Selection.assetGUIDs.Select(AssetDatabase.GUIDToAssetPath).SelectMany(GitManager.GetPathWithMeta).ToArray();

            if (externalManager.TakeRevert(paths))
            {
                gitManager.Callbacks.IssueAssetDatabaseRefresh();
                gitManager.MarkDirty(paths);
                return;
            }

            try
            {
                gitManager.Repository.CheckoutPaths("HEAD", paths, new CheckoutOptions()
                {
                    CheckoutModifiers = CheckoutModifiers.Force, OnCheckoutProgress = OnRevertProgress
                });
            }
            finally
            {
                EditorUtility.ClearProgressBar();
            }

            gitManager.Callbacks.IssueAssetDatabaseRefresh();
            gitManager.MarkDirty(paths);
        }
Пример #2
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!"));
            }
        }
Пример #3
0
        private static void Revet()
        {
            var paths = Selection.assetGUIDs.Select(e => AssetDatabase.GUIDToAssetPath(e)).SelectMany(e => GitManager.GetPathWithMeta(e)).ToArray();

            if (GitExternalManager.TakeRevert(paths))
            {
                AssetDatabase.Refresh();
                GitManager.MarkDirty(paths);
                return;
            }

            GitManager.Repository.CheckoutPaths("HEAD", paths, new CheckoutOptions()
            {
                CheckoutModifiers = CheckoutModifiers.Force, OnCheckoutProgress = OnRevertProgress
            });
            EditorUtility.ClearProgressBar();
            AssetDatabase.Refresh();
            GitManager.MarkDirty(paths);
        }
Пример #4
0
        private void Revert(string[] localPaths)
        {
            if (externalManager.TakeRevert(localPaths.Select(p => gitManager.ToProjectPath(p))))
            {
                gitCallbacks.IssueAssetDatabaseRefresh();
                gitManager.MarkDirtyAuto(localPaths);
                return;
            }

            try
            {
                gitManager.Repository.CheckoutPaths("HEAD", localPaths, new CheckoutOptions()
                {
                    CheckoutModifiers = CheckoutModifiers.Force, OnCheckoutProgress = OnRevertProgress
                });
                gitManager.MarkDirtyAuto(localPaths);
                gitCallbacks.IssueAssetDatabaseRefresh();
                GitGUI.ShowNotificationOnWindow <GitDiffWindow>(new GUIContent("Revert Complete!"), false);
            }
            finally
            {
                EditorUtility.ClearProgressBar();
            }
        }