diff --git a/src/plugins/git/changeselectiondialog.cpp b/src/plugins/git/changeselectiondialog.cpp index 824451242d5..a65babe683b 100644 --- a/src/plugins/git/changeselectiondialog.cpp +++ b/src/plugins/git/changeselectiondialog.cpp @@ -14,8 +14,6 @@ #include #include -#include - #include #include #include @@ -211,11 +209,16 @@ void ChangeSelectionDialog::recalculateCompletion() return; GitClient *client = GitClient::instance(); - VcsCommand *command = client->asyncForEachRefCmd(workingDir, {"--format=%(refname:short)"}); - connect(this, &QObject::destroyed, command, &VcsCommand::abort); - connect(command, &VcsCommand::stdOutText, [this](const QString &output) { - m_changeModel->setStringList(output.split('\n')); + QtcProcess *process = new QtcProcess(this); + process->setEnvironment(client->processEnvironment()); + process->setCommand({client->vcsBinary(), {"for-each-ref", "--format=%(refname:short)"}}); + process->setWorkingDirectory(workingDir); + connect(process, &QtcProcess::done, this, [this, process] { + if (process->result() == ProcessResult::FinishedWithSuccess) + m_changeModel->setStringList(process->cleanedStdOut().split('\n')); + process->deleteLater(); }); + process->start(); } void ChangeSelectionDialog::recalculateDetails() diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 10a198fa6db..b1618dd2c4b 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -2017,12 +2017,6 @@ bool GitClient::synchronousForEachRefCmd(const FilePath &workingDirectory, QStri return false; } -VcsCommand *GitClient::asyncForEachRefCmd(const FilePath &workingDirectory, QStringList args) const -{ - args.push_front("for-each-ref"); - return vcsExec(workingDirectory, args, nullptr, false, VcsCommand::NoOutput); -} - bool GitClient::synchronousRemoteCmd(const FilePath &workingDirectory, QStringList remoteArgs, QString *output, QString *errorMessage, bool silent) const { diff --git a/src/plugins/git/gitclient.h b/src/plugins/git/gitclient.h index ac07e515929..f20b5bc45a5 100644 --- a/src/plugins/git/gitclient.h +++ b/src/plugins/git/gitclient.h @@ -208,7 +208,6 @@ public: QString *output, QString *errorMessage) const; bool synchronousForEachRefCmd(const Utils::FilePath &workingDirectory, QStringList args, QString *output, QString *errorMessage = nullptr) const; - VcsBase::VcsCommand *asyncForEachRefCmd(const Utils::FilePath &workingDirectory, QStringList args) const; bool synchronousRemoteCmd(const Utils::FilePath &workingDirectory, QStringList remoteArgs, QString *output = nullptr, QString *errorMessage = nullptr, bool silent = false) const;