From cb6a2da37223fa34f4e173e2ed64118f735d6c92 Mon Sep 17 00:00:00 2001 From: Jarek Kobus Date: Thu, 18 Jan 2024 16:18:34 +0100 Subject: [PATCH] VcsCommand: Fix clearing repository Move a call to setRepository() from c'tor into the setup() method, as it should be called just before the process is started. Add an accompanying call to clearRepository() into the cleanup() method. Remove other manual calls to setRepository() and clearRepository(). Change-Id: I35b9d4ea72cc885bb8ae34950987a8ca18584fd1 Reviewed-by: Orgad Shaneh --- src/plugins/git/gitclient.cpp | 5 +---- src/plugins/subversion/subversionplugin.cpp | 2 -- src/plugins/vcsbase/vcsbaseclient.cpp | 2 -- src/plugins/vcsbase/vcscommand.cpp | 3 ++- 4 files changed, 3 insertions(+), 9 deletions(-) diff --git a/src/plugins/git/gitclient.cpp b/src/plugins/git/gitclient.cpp index 9d9628099f5..8154a076ebd 100644 --- a/src/plugins/git/gitclient.cpp +++ b/src/plugins/git/gitclient.cpp @@ -1008,10 +1008,7 @@ void GitClient::merge(const FilePath &workingDirectory, const QStringList &unmer void GitClient::status(const FilePath &workingDirectory) const { - VcsOutputWindow::setRepository(workingDirectory); - vcsExecWithHandler(workingDirectory, {"status", "-u"}, this, [](const CommandResult &) { - VcsOutputWindow::instance()->clearRepository(); - }, RunFlags::ShowStdOut); + vcsExec(workingDirectory, {"status", "-u"}, RunFlags::ShowStdOut); } static QStringList normalLogArguments() diff --git a/src/plugins/subversion/subversionplugin.cpp b/src/plugins/subversion/subversionplugin.cpp index d8db4418597..b86ac06f596 100644 --- a/src/plugins/subversion/subversionplugin.cpp +++ b/src/plugins/subversion/subversionplugin.cpp @@ -802,9 +802,7 @@ void SubversionPluginPrivate::svnStatus(const FilePath &workingDir, const QStrin args << SubversionClient::AddAuthOptions(); if (!relativePath.isEmpty()) args << SubversionClient::escapeFile(relativePath); - VcsOutputWindow::setRepository(workingDir); runSvn(workingDir, args, RunFlags::ShowStdOut | RunFlags::ShowSuccessMessage); - VcsOutputWindow::clearRepository(); } void SubversionPluginPrivate::filelog(const FilePath &workingDir, diff --git a/src/plugins/vcsbase/vcsbaseclient.cpp b/src/plugins/vcsbase/vcsbaseclient.cpp index 522bcd6d79e..8e8e8a3e8d7 100644 --- a/src/plugins/vcsbase/vcsbaseclient.cpp +++ b/src/plugins/vcsbase/vcsbaseclient.cpp @@ -476,10 +476,8 @@ void VcsBaseClient::status(const FilePath &workingDir, { QStringList args(vcsCommandString(StatusCommand)); args << extraOptions << file; - VcsOutputWindow::setRepository(workingDir); VcsCommand *cmd = createCommand(workingDir); cmd->addFlags(RunFlags::ShowStdOut); - connect(cmd, &VcsCommand::done, VcsOutputWindow::instance(), &VcsOutputWindow::clearRepository); enqueueJob(cmd, args); } diff --git a/src/plugins/vcsbase/vcscommand.cpp b/src/plugins/vcsbase/vcscommand.cpp index c8d0b62caaa..20f9b292935 100644 --- a/src/plugins/vcsbase/vcscommand.cpp +++ b/src/plugins/vcsbase/vcscommand.cpp @@ -90,12 +90,14 @@ int VcsCommandPrivate::timeoutS() const void VcsCommandPrivate::setup() { + VcsOutputWindow::setRepository(m_defaultWorkingDirectory); if (m_flags & RunFlags::ExpectRepoChanges) GlobalFileChangeBlocker::instance()->forceBlocked(true); } void VcsCommandPrivate::cleanup() { + VcsOutputWindow::clearRepository(); if (m_flags & RunFlags::ExpectRepoChanges) GlobalFileChangeBlocker::instance()->forceBlocked(false); } @@ -227,7 +229,6 @@ void VcsCommandPrivate::processDone() VcsCommand::VcsCommand(const FilePath &workingDirectory, const Environment &environment) : d(new Internal::VcsCommandPrivate(this, workingDirectory, environment)) { - VcsOutputWindow::setRepository(d->m_defaultWorkingDirectory); connect(ICore::instance(), &ICore::coreAboutToClose, this, [this] { if (d->m_process && d->m_process->isRunning()) d->cleanup();