private void OkClick(object sender, EventArgs e) { try { if (!DeleteRemote.Checked) { return; } List <IGitRef> selectedBranches = Branches.GetSelectedBranches().ToList(); var hasUnmergedBranches = selectedBranches.Any(branch => !_mergedBranches.Contains(branch.CompleteName)); if (hasUnmergedBranches) { if (MessageBox.Show(this, _confirmDeleteUnmergedRemoteBranchMessage.Text, _deleteRemoteBranchesCaption.Text, MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } } foreach (var remoteGroup in selectedBranches.GroupBy(b => b.Remote)) { string remote = remoteGroup.Key; EnsurePageant(remote); var cmd = new GitDeleteRemoteBranchesCmd(remote, remoteGroup); ScriptManager.RunEventScripts(this, ScriptEvent.BeforePush); using (var form = new FormRemoteProcess(Module, cmd.ToLine()) { Remote = remote }) { form.ShowDialog(); if (!Module.InTheMiddleOfAction() && !form.ErrorOccurred()) { ScriptManager.RunEventScripts(this, ScriptEvent.AfterPush); } } } UICommands.RepoChangedNotifier.Notify(); } catch (Exception ex) { Trace.WriteLine(ex.Message); } Close(); }
private void OkClick(object sender, EventArgs e) { try { var selectedBranches = Branches.GetSelectedBranches().ToArray(); if (!selectedBranches.Any()) { return; } if (_currentBranch != null && selectedBranches.Any(branch => branch.Name == _currentBranch)) { MessageBox.Show(this, string.Format(_cannotDeleteCurrentBranchMessage.Text, _currentBranch), _deleteBranchCaption.Text); return; } // always treat branches as unmerged if there is no current branch (HEAD is detached) var hasUnmergedBranches = _currentBranch == null || selectedBranches.Any(branch => !_mergedBranches.Contains(branch.Name)); // we could show yes/no dialog and set forcing checkbox automatically, but more safe way is asking user to do it himself if (hasUnmergedBranches && !ForceDelete.Checked) { MessageBox.Show(this, _deleteUnmergedBranchForcingSuggestion.Text, _deleteBranchCaption.Text); return; } // ask for confirmation to delete unmerged branch that may cause loosing commits // (actually we could check if there are another branches pointing to that commit) if (hasUnmergedBranches && MessageBox.Show(this, _deleteBranchQuestion.Text, _deleteBranchCaption.Text, MessageBoxButtons.YesNo) != DialogResult.Yes) { return; } var cmd = new GitDeleteBranchCmd(selectedBranches, ForceDelete.Checked); UICommands.StartCommandLineProcessDialog(this, cmd); } catch (Exception ex) { Trace.WriteLine(ex.Message); } Close(); }
private void OkClick(object sender, EventArgs e) { try { if (MessageBox.Show(this, _deleteBranchQuestion.Text, _deleteBranchCaption.Text, MessageBoxButtons.YesNo) == DialogResult.Yes) { GitDeleteBranchCmd cmd = new GitDeleteBranchCmd(); cmd.Force = ForceDelete.Checked; foreach (GitHead head in Branches.GetSelectedBranches()) { cmd.AddBranch(head.Name, head.IsRemote); } GitUICommands.Instance.StartCommandLineProcessDialog(cmd, this); } } catch (Exception ex) { Trace.WriteLine(ex.Message); } Close(); }