From c68adbf9c08e529f1412378162840a1f1f08ab35 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh Date: Fri, 8 Feb 2013 15:43:46 +0200 Subject: [PATCH] Git: Enable skipping a commit on rebase Change-Id: Ib83ca453c86b93cb359a2a0a9774c7d39533be4e Reviewed-by: Tobias Hunger --- src/plugins/git/gitclient.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 51e739989ad..48fde2be1e1 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -73,6 +73,7 @@ #include #include +#include #include #include @@ -2163,16 +2164,23 @@ void GitClient::handleMergeConflicts(const QString &workingDir, const QString &c : tr("Conflicts detected with commit %1").arg(commit); QMessageBox mergeOrAbort(QMessageBox::Question, tr("Conflicts Detected"), message, QMessageBox::Ignore | QMessageBox::Abort); - mergeOrAbort.addButton(tr("Run Merge Tool"), QMessageBox::ActionRole); + QPushButton *mergeToolButton = mergeOrAbort.addButton(tr("Run &Merge Tool"), + QMessageBox::ActionRole); + if (abortCommand == QLatin1String("rebase")) + mergeOrAbort.addButton(tr("&Skip"), QMessageBox::ActionRole); switch (mergeOrAbort.exec()) { - case QMessageBox::Abort: { + case QMessageBox::Abort: synchronousAbortCommand(workingDir, abortCommand); break; - } case QMessageBox::Ignore: break; - default: // Merge - merge(workingDir); + default: // Merge or Skip + if (mergeOrAbort.clickedButton() == mergeToolButton) { + merge(workingDir); + } else { + QStringList arguments = QStringList() << abortCommand << QLatin1String("--skip"); + executeAndHandleConflicts(workingDir, arguments, abortCommand); + } } }