From 1f0cbbc807e76078771a58c7dc20705dd48b8c72 Mon Sep 17 00:00:00 2001 From: Orgad Shaneh <orgad.shaneh@audiocodes.com> Date: Wed, 2 Oct 2013 15:14:26 +0300 Subject: [PATCH] Git: Disallow Commit and Push if rebase is in progress Change-Id: I35a6cf850bccf076d22a73b98b0422663c61b1d3 Reviewed-by: Petar Perisin <petar.perisin@gmail.com> --- src/plugins/git/gitclient.cpp | 9 +++++++++ src/plugins/git/gitplugin.cpp | 23 ++++++++++------------- 2 files changed, 19 insertions(+), 13 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 0c3c245eb1f..aa4e2b48db3 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -3046,6 +3046,15 @@ bool GitClient::getCommitData(const QString &workingDirectory, } commitData.enablePush = !synchronousRemotesList(repoDirectory).isEmpty(); + if (commitData.enablePush) { + switch (checkCommandInProgress(repoDirectory)) { + case GitClient::Rebase: + case GitClient::RebaseMerge: + commitData.enablePush = false; + break; + } + } + return true; } diff --git a/src/plugins/git/gitplugin.cpp b/src/plugins/git/gitplugin.cpp index 7d0f918c744..ab195cde664 100644 --- a/src/plugins/git/gitplugin.cpp +++ b/src/plugins/git/gitplugin.cpp @@ -1111,25 +1111,22 @@ bool GitPlugin::submitEditorAboutToClose() commitType, amendSHA1, m_commitMessageFileName, model); } - if (closeEditor) { - cleanCommitMessageFile(); - if (commitType == FixupCommit) { - if (!m_gitClient->beginStashScope(m_submitRepository, QLatin1String("Rebase-fixup"), NoPrompt)) - return false; - m_gitClient->interactiveRebase(m_submitRepository, amendSHA1, true); - } else { - m_gitClient->continueCommandIfNeeded(m_submitRepository); - } - } - - if (m_gitClient->checkCommandInProgress(m_submitRepository) == GitClient::NoCommand) { + if (!closeEditor) + return false; + cleanCommitMessageFile(); + if (commitType == FixupCommit) { + if (!m_gitClient->beginStashScope(m_submitRepository, QLatin1String("Rebase-fixup"), NoPrompt)) + return false; + m_gitClient->interactiveRebase(m_submitRepository, amendSHA1, true); + } else { + m_gitClient->continueCommandIfNeeded(m_submitRepository); if (editor->panelData().pushAction == NormalPush) m_gitClient->push(m_submitRepository); else if (editor->panelData().pushAction == PushToGerrit) connect(editor, SIGNAL(destroyed()), this, SLOT(delayedPushToGerrit())); } - return closeEditor; + return true; } void GitPlugin::fetch() -- GitLab