summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOrgad Shaneh <orgad.shaneh@audiocodes.com>2013-01-24 11:45:59 +0200
committerOrgad Shaneh <orgads@gmail.com>2013-01-24 13:47:57 +0100
commitc57e6029c6d708b42717569f9a9a9d208ae69c00 (patch)
tree912ce09bfc92e42fac18df6d9f32f98d2f5c7768
parentcf5f109b6841231232a3fe58308d893910d3a209 (diff)
downloadqt-creator-c57e6029c6d708b42717569f9a9a9d208ae69c00.tar.gz
Gerrit: Use GitClient functions for checkout and cherry-pick
This is cleaner, and for cherry-pick also handles conflicts Change-Id: I50a7035c532a2cfa07fdd960e70ffb4af666a80e Reviewed-by: Friedemann Kleint <Friedemann.Kleint@digia.com>
-rw-r--r--src/plugins/git/gerrit/gerritplugin.cpp46
1 files changed, 14 insertions, 32 deletions
diff --git a/src/plugins/git/gerrit/gerritplugin.cpp b/src/plugins/git/gerrit/gerritplugin.cpp
index 1cb9930d99..676e104cc2 100644
--- a/src/plugins/git/gerrit/gerritplugin.cpp
+++ b/src/plugins/git/gerrit/gerritplugin.cpp
@@ -108,16 +108,13 @@ private:
{
FetchState, // Fetch patch
WritePatchFileState, // Write patch to a file
- CherryPickState, // Cherry-pick (apply) fetch-head
- CheckoutState, // Check out fetch-head
DoneState,
ErrorState
};
void handleError(const QString &message);
void startWritePatchFile();
- void startCherryPick();
- void startCheckout();
+ void cherryPick();
const QSharedPointer<GerritChange> m_change;
const QString m_repository;
@@ -199,12 +196,16 @@ void FetchContext::processFinished(int exitCode, QProcess::ExitStatus es)
startWritePatchFile();
break;
case FetchApply:
- m_state = CherryPickState;
- startCherryPick();
- break;
case FetchCheckout:
- m_state = CheckoutState;
- startCheckout();
+ if (m_fetchMode == FetchApply) {
+ cherryPick();
+ } else {
+ Git::Internal::GitPlugin::instance()->gitClient()->synchronousCheckout(
+ m_repository, QLatin1String("FETCH_HEAD"));
+ }
+ m_progress.reportFinished();
+ m_state = DoneState;
+ deleteLater();
break;
} // switch (m_fetchMode)
break;
@@ -231,11 +232,6 @@ void FetchContext::processFinished(int exitCode, QProcess::ExitStatus es)
break;
}
break;
- case CherryPickState:
- case CheckoutState:
- m_progress.reportFinished();
- m_state = DoneState;
- deleteLater();
}
}
@@ -243,7 +239,7 @@ void FetchContext::processReadyReadStandardError()
{
// Note: fetch displays progress on stderr.
const QString errorOutput = QString::fromLocal8Bit(m_process.readAllStandardError());
- if (m_state == FetchState || m_state == CheckoutState)
+ if (m_state == FetchState)
VcsBase::VcsBaseOutputWindow::instance()->append(errorOutput);
else
VcsBase::VcsBaseOutputWindow::instance()->appendError(errorOutput);
@@ -303,27 +299,13 @@ void FetchContext::startWritePatchFile()
m_process.closeWriteChannel();
}
-void FetchContext::startCherryPick()
+void FetchContext::cherryPick()
{
// Point user to errors.
VcsBase::VcsBaseOutputWindow::instance()->popup(Core::IOutputPane::ModeSwitch | Core::IOutputPane::WithFocus);
VcsBase::VcsBaseOutputWindow::instance()->append(tr("Cherry-picking %1...").arg(m_patchFileName));
- QStringList args;
- args << QLatin1String("cherry-pick") << QLatin1String("FETCH_HEAD");
- VcsBase::VcsBaseOutputWindow::instance()->appendCommand(m_repository, m_git, args);
- if (debug)
- qDebug() << m_git << args;
- m_process.start(m_git, args);
- m_process.closeWriteChannel();
-}
-
-void FetchContext::startCheckout()
-{
- QStringList args;
- args << QLatin1String("checkout") << QLatin1String("FETCH_HEAD");
- VcsBase::VcsBaseOutputWindow::instance()->appendCommand(m_repository, m_git, args);
- m_process.start(m_git, args);
- m_process.closeWriteChannel();
+ Git::Internal::GitPlugin::instance()->gitClient()->cherryPickCommit(
+ m_repository, QLatin1String("FETCH_HEAD"));
}
GerritPlugin::GerritPlugin(QObject *parent)