Esempio n. 1
0
 public GitLFSSettingsTab(GitManager gitManager,
                          GitSettingsWindow settingsWindow,
                          GitLfsManager lfsManager,
                          InjectionHelper injectionHelper,
                          UniGitData data,
                          GitSettingsJson gitSettings,
                          GitCallbacks gitCallbacks,
                          GitInitializer initializer)
     : base(new GUIContent("LFS", "Git Large File Storage (beta)"), gitManager, settingsWindow, data, gitSettings, gitCallbacks, initializer)
 {
     this.injectionHelper = injectionHelper;
     this.lfsManager      = lfsManager;
 }
Esempio n. 2
0
 public GitGeneralSettingsTab(GitManager gitManager,
                              GitSettingsWindow settingsWindow,
                              GitLfsManager lfsManager,
                              UniGitData data,
                              GitSettingsJson gitSettings,
                              GitCallbacks gitCallbacks,
                              GitInitializer initializer,
                              GitSettingsManager settingsManager,
                              UniGitPaths paths)
     : base(new GUIContent("General"), gitManager, settingsWindow, data, gitSettings, gitCallbacks, initializer)
 {
     this.paths           = paths;
     this.lfsManager      = lfsManager;
     this.settingsManager = settingsManager;
 }
Esempio n. 3
0
        public override bool OnPrePush(IEnumerable <PushUpdate> updates)
        {
            if (!GitLfsManager.Installed || !GitLfsManager.CheckInitialized())
            {
                return(true);
            }

            using (var process = new Process())
            {
                process.StartInfo.FileName               = "git-lfs";
                process.StartInfo.Arguments              = "pre-push origin";
                process.StartInfo.WorkingDirectory       = GitManager.RepoPath;
                process.StartInfo.CreateNoWindow         = false;
                process.StartInfo.UseShellExecute        = false;
                process.StartInfo.RedirectStandardInput  = true;
                process.StartInfo.RedirectStandardOutput = true;
                process.StartInfo.RedirectStandardError  = true;
                process.Start();

                foreach (var update in updates)
                {
                    string value = string.Format("{0} {1} {2} {3}\n", update.SourceRefName, update.SourceObjectId.Sha, update.DestinationRefName, update.DestinationObjectId.Sha);
                    process.StandardInput.Write(value);
                    UnityEngine.Debug.Log(value);
                }

                process.StandardInput.Write("\0");
                process.StandardInput.Flush();
                process.StandardInput.Close();
                process.WaitForExit();

                string output    = process.StandardOutput.ReadToEnd();
                string outputErr = process.StandardError.ReadToEnd();
                if (!string.IsNullOrEmpty(output))
                {
                    Console.WriteLine("git-lfs pre-push results: " + output);
                }
                if (!string.IsNullOrEmpty(outputErr))
                {
                    UnityEngine.Debug.Log("git-lfs pre-push error results: " + outputErr);
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 4
0
 public GitLfsPrePushHook(GitManager gitManager, GitLfsManager lfsManager) : base(gitManager)
 {
     this.lfsManager = lfsManager;
 }
Esempio n. 5
0
 public GitLFSSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitLfsManager lfsManager)
     : base(new GUIContent("LFS", "Git Large File Storage (beta)"), gitManager, settingsWindow)
 {
     this.lfsManager = lfsManager;
 }
Esempio n. 6
0
 public GitLfsFilter(string name, IEnumerable <FilterAttributeEntry> attributes, GitLfsManager lfsManager, GitManager gitManager, ILogger logger) : base(name, attributes)
 {
     this.gitManager = gitManager;
     this.lfsManager = lfsManager;
     this.logger     = logger;
 }
 public GitGeneralSettingsTab(GitManager gitManager, GitSettingsWindow settingsWindow, GitLfsManager lfsManager)
     : base(new GUIContent("General"), gitManager, settingsWindow)
 {
     this.lfsManager = lfsManager;
 }
Esempio n. 8
0
        internal override void OnGUI(Rect rect, Event current)
        {
            if (!GitLfsManager.Installed)
            {
                EditorGUILayout.HelpBox("Git LFS not installed", MessageType.Warning);
                if (GUILayout.Button(GitGUI.GetTempContent("Download")))
                {
                    Application.OpenURL("https://git-lfs.github.com/");
                }
            }
            else
            {
                if (!GitLfsManager.CheckInitialized())
                {
                    EditorGUILayout.HelpBox("Git LFS not Initialized", MessageType.Info);
                    if (GUILayout.Button(GitGUI.GetTempContent("Initialize")))
                    {
                        GitLfsManager.Initialize();
                    }
                }
                else
                {
                    GUILayout.Label(GitGUI.GetTempContent("Settings"), "ProjectBrowserHeaderBgTop");


                    string url = GitManager.Repository.Config.GetValueOrDefault("lfs.url", "");
                    if (string.IsNullOrEmpty(url))
                    {
                        EditorGUILayout.HelpBox("You should specify a LFS server URL", MessageType.Warning);
                    }

                    GitGUI.DoConfigStringField(GitGUI.GetTempContent("URL"), "lfs.url", "");

                    EditorGUILayout.Space();

                    foreach (var info in GitLfsManager.TrackedInfo)
                    {
                        GUILayout.Label(GitGUI.GetTempContent(info.Extension), "ShurikenModuleTitle");
                        GUI.SetNextControlName(info.GetHashCode() + " Extension");
                        info.Extension = EditorGUILayout.DelayedTextField(GitGUI.GetTempContent("Extension"), info.Extension);
                        GUI.SetNextControlName(info.GetHashCode() + " Type");
                        info.Type = (GitLfsTrackedInfo.TrackType)EditorGUILayout.EnumPopup(GitGUI.GetTempContent("Type"), info.Type);

                        if (info.IsDirty)
                        {
                            GitLfsManager.SaveTracking();
                            break;
                        }
                    }

                    if (GUILayout.Button("Track File"))
                    {
                        PopupWindow.Show(trackFileRect, new GitLfsTrackPopupWindow(settingsWindow));
                    }
                    if (current.type == EventType.Repaint)
                    {
                        trackFileRect = GUILayoutUtility.GetLastRect();
                    }
                }
            }

            EditorGUILayout.HelpBox("Git LFS is still in development, and is recommended to use an external program for handling it.", MessageType.Info);
        }