diff --git a/src/plugins/subversion/subversionclient.cpp b/src/plugins/subversion/subversionclient.cpp index a2e887239c5..ef65246fc3b 100644 --- a/src/plugins/subversion/subversionclient.cpp +++ b/src/plugins/subversion/subversionclient.cpp @@ -76,10 +76,10 @@ SubversionClient::SubversionClient() : VcsBaseClient(new SubversionSettings) }); } -VcsCommand *SubversionClient::createCommitCmd(const QString &repositoryRoot, - const QStringList &files, - const QString &commitMessageFile, - const QStringList &extraOptions) const +bool SubversionClient::doCommit(const QString &repositoryRoot, + const QStringList &files, + const QString &commitMessageFile, + const QStringList &extraOptions) const { const QStringList svnExtraOptions = QStringList(extraOptions) @@ -88,11 +88,11 @@ VcsCommand *SubversionClient::createCommitCmd(const QString &repositoryRoot, << QLatin1String("--encoding") << QLatin1String("UTF-8") << QLatin1String("--file") << commitMessageFile; - VcsCommand *cmd = createCommand(repositoryRoot); - cmd->addFlags(VcsCommand::ShowStdOut); QStringList args(vcsCommandString(CommitCommand)); - cmd->addJob(vcsBinary(), args << svnExtraOptions << escapeFiles(files)); - return cmd; + SynchronousProcessResponse resp = + vcsSynchronousExec(repositoryRoot, args << svnExtraOptions << escapeFiles(files), + VcsCommand::ShowStdOut | VcsCommand::NoFullySync); + return resp.result == SynchronousProcessResponse::Finished; } void SubversionClient::commit(const QString &repositoryRoot, @@ -103,8 +103,7 @@ void SubversionClient::commit(const QString &repositoryRoot, if (Subversion::Constants::debug) qDebug() << Q_FUNC_INFO << commitMessageFile << files; - VcsCommand *cmd = createCommitCmd(repositoryRoot, files, commitMessageFile, extraOptions); - cmd->execute(); + doCommit(repositoryRoot, files, commitMessageFile, extraOptions); } Id SubversionClient::vcsEditorKind(VcsCommandTag cmd) const diff --git a/src/plugins/subversion/subversionclient.h b/src/plugins/subversion/subversionclient.h index aa45c124da2..00ab1639ee6 100644 --- a/src/plugins/subversion/subversionclient.h +++ b/src/plugins/subversion/subversionclient.h @@ -43,10 +43,10 @@ class SubversionClient : public VcsBase::VcsBaseClient public: SubversionClient(); - VcsBase::VcsCommand *createCommitCmd(const QString &repositoryRoot, - const QStringList &files, - const QString &commitMessageFile, - const QStringList &extraOptions = QStringList()) const; + bool doCommit(const QString &repositoryRoot, + const QStringList &files, + const QString &commitMessageFile, + const QStringList &extraOptions = QStringList()) const; void commit(const QString &repositoryRoot, const QStringList &files, const QString &commitMessageFile, diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index 7aca6cecb99..e9a70d2f9a4 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -442,15 +442,10 @@ bool SubversionPlugin::submitEditorAboutToClose() bool closeEditor = true; if (!fileList.empty()) { // get message & commit - closeEditor = DocumentManager::saveDocument(editorDocument); - if (closeEditor) { - VcsCommand *commitCmd = m_client->createCommitCmd(m_commitRepository, - fileList, - m_commitMessageFileName); - QObject::connect(commitCmd, &VcsCommand::finished, - this, [this]() { cleanCommitMessageFile(); }); - commitCmd->execute(); - } + closeEditor = DocumentManager::saveDocument(editorDocument) + && m_client->doCommit(m_commitRepository, fileList, m_commitMessageFileName); + if (closeEditor) + cleanCommitMessageFile(); } return closeEditor; }