Пример #1
0
        public ITask CommitFiles(List <string> files, string message, string body)
        {
            var task = GitClient.Add(files)
                       .Then(GitClient.Commit(message, body));

            return(HookupHandlers(task, true));
        }
        public void InitializeRepository()
        {
            isBusy = true;
            progress.UpdateProgress(0, 100, "Initializing...");
            var thread = new Thread(() =>
            {
                var success = true;
                try
                {
                    var targetPath = NPath.CurrentDirectory;

                    var gitignore       = targetPath.Combine(".gitignore");
                    var gitAttrs        = targetPath.Combine(".gitattributes");
                    var assetsGitignore = targetPath.Combine("Assets", ".gitignore");

                    var filesForInitialCommit = new List <string> {
                        gitignore, gitAttrs, assetsGitignore
                    };

                    GitClient.Init().RunSynchronously();
                    progress.UpdateProgress(10, 100, "Initializing...");

                    ConfigureMergeSettings();
                    progress.UpdateProgress(20, 100, "Initializing...");

                    GitClient.LfsInstall().RunSynchronously();
                    progress.UpdateProgress(30, 100, "Initializing...");

                    AssemblyResources.ToFile(ResourceType.Generic, ".gitignore", targetPath, Environment);
                    AssemblyResources.ToFile(ResourceType.Generic, ".gitattributes", targetPath, Environment);
                    assetsGitignore.CreateFile();
                    GitClient.Add(filesForInitialCommit).RunSynchronously();
                    progress.UpdateProgress(60, 100, "Initializing...");
                    GitClient.Commit("Initial commit", null).RunSynchronously();
                    progress.UpdateProgress(70, 100, "Initializing...");
                    Environment.InitializeRepository();
                }
                catch (Exception ex)
                {
                    Logger.Error(ex, "A problem ocurred initializing the repository");
                    progress.UpdateProgress(90, 100, "Failed to initialize repository");
                    success = false;
                }

                if (success)
                {
                    progress.UpdateProgress(90, 100, "Initializing...");
                    RestartRepository();
                    TaskManager.RunInUI(InitializeUI);
                    UsageTracker.IncrementProjectsInitialized();
                    progress.UpdateProgress(100, 100, "Initialized");
                }
                isBusy = false;
            });

            thread.Start();
        }