private void RepoBGW_DoWork(object sender, DoWorkEventArgs e) { //Only for clones var Repo = Instance.Repository; switch (action) { case RepoAction.Clone: repoError = Repo.Setup(CloneRepoURL, CheckoutBranch); break; case RepoAction.Checkout: repoError = Repo.Checkout(CheckoutBranch); break; case RepoAction.Merge: repoError = Repo.Update(false); break; case RepoAction.Reset: repoError = Repo.Reset(true); break; case RepoAction.Test: repoError = Repo.MergePullRequest(TestPR); break; case RepoAction.Update: repoError = Repo.Update(true); break; case RepoAction.Wait: break; case RepoAction.GenCL: var result = Repo.GenerateChangelog(out repoError); if (repoError != null) { repoError += ": " + result; } break; default: //reeee return; } do { Thread.Sleep(1000); RepoBGW.ReportProgress(Repo.CheckoutProgress()); } while (Repo.OperationInProgress()); }
void DoAsyncOp(RepoAction ra, string message) { if (RepoBGW.IsBusy || (ra != RepoAction.Wait && RepoBusyCheck())) { return; } SyncCommitsCheckBox.Visible = false; CurrentRevisionLabel.Visible = false; CurrentRevisionTitle.Visible = false; TestMergeListLabel.Visible = false; TestMergeListTitle.Visible = false; RepoApplyButton.Visible = false; UpdateRepoButton.Visible = false; MergePRButton.Visible = false; CloneRepositoryButton.Visible = false; RemoteNameTitle.Visible = false; RepoRemoteTextBox.Visible = false; BranchNameTitle.Visible = false; RepoBranchTextBox.Visible = false; RepoProgressBar.Visible = true; HardReset.Visible = false; IdentityLabel.Visible = false; TestmergeSelector.Visible = false; RepoGenChangelogButton.Visible = false; RecloneButton.Visible = false; ResetRemote.Visible = false; BackupTagsList.Visible = false; RepoRefreshButton.Visible = false; TGSJsonUpdate.Visible = false; RepoPanel.UseWaitCursor = true; RepoProgressBar.Value = 0; RepoProgressBar.Style = ProgressBarStyle.Marquee; RepoProgressBarLabel.Text = message; RepoProgressBarLabel.Visible = true; action = ra; repoError = null; RepoBGW.RunWorkerAsync(); }