/// <summary> /// Do a no-op merge. (See: http://mercurial.selenic.com/wiki/PruningDeadBranches#No-Op_Merges) /// </summary> private void NoopMerge(HgRepository repo, Revision keeperRevision, Revision gonerRevision) { string optionalComment = null; using (var optionalCommentDlg = new OptionalCommentDlg()) { if (optionalCommentDlg.ShowDialog(this) == DialogResult.OK && !string.IsNullOrWhiteSpace(optionalCommentDlg.OptionalComment)) { optionalComment = optionalCommentDlg.OptionalComment.Trim(); } } // Merge goner into keeper. repo.Merge(_repoFolder, gonerRevision.Number.LocalRevisionNumber); // Revert the merge. repo.Execute(repo.SecondsBeforeTimeoutOnMergeOperation, "revert", "-a", "-r", keeperRevision.Number.LocalRevisionNumber); // Commit var comment = string.Format(@"No-Op Merge: Revert repository to revision '{0}'", keeperRevision.Number.LocalRevisionNumber); if (!string.IsNullOrWhiteSpace(optionalComment)) { comment = string.Format(@"{0}. {1}", comment, optionalComment); } repo.Commit(true, comment); }
/// <summary> /// Do a no-op merge. (See: http://mercurial.selenic.com/wiki/PruningDeadBranches#No-Op_Merges) /// </summary> private void NoopMerge(HgRepository repo, Revision keeperRevision, Revision gonerRevision) { string optionalComment = null; using (var optionalCommentDlg = new OptionalCommentDlg()) { if (optionalCommentDlg.ShowDialog(this) == DialogResult.OK && !string.IsNullOrWhiteSpace(optionalCommentDlg.OptionalComment)) { optionalComment = optionalCommentDlg.OptionalComment.Trim(); } } // Merge goner into keeper. repo.Merge(_repoFolder, gonerRevision.Number.LocalRevisionNumber); // Revert the merge. repo.Execute(repo.SecondsBeforeTimeoutOnMergeOperation, "revert", "-a", "-r", keeperRevision.Number.LocalRevisionNumber); // Commit var comment = string.Format(@"No-Op Merge: Revert repository to revision '{0}'", keeperRevision.Number.LocalRevisionNumber); if (!string.IsNullOrWhiteSpace(optionalComment)) comment = string.Format(@"{0}. {1}", comment, optionalComment); repo.Commit(true, comment); }