forked from qt-creator/qt-creator
VcsCommand: Block auto reload while a command is running
Git rebase is executed in the background, and it can change a file multiple times in a short period. If we reparse a file while this happens on Windows, Git fails to replace it, the rebase action fails and the repository becomes unstable (remains with a modified file). See discussion at https://github.com/git-for-windows/git/pull/1666 Task-number: QTCREATORBUG-15449 Change-Id: Iba40a770a1df2dfff0dd1c874c491dfbe1cceb58 Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
committed by
Orgad Shaneh
parent
caff9f9aac
commit
b82ffb917b
@@ -27,6 +27,7 @@
|
||||
#include "vcsbaseplugin.h"
|
||||
#include "vcsoutputwindow.h"
|
||||
|
||||
#include <coreplugin/documentmanager.h>
|
||||
#include <coreplugin/vcsmanager.h>
|
||||
#include <utils/synchronousprocess.h>
|
||||
|
||||
@@ -56,6 +57,14 @@ VcsCommand::VcsCommand(const QString &workingDirectory,
|
||||
|
||||
return proxy;
|
||||
});
|
||||
connect(this, &VcsCommand::started, this, [this] {
|
||||
if (flags() & ExpectRepoChanges)
|
||||
Core::DocumentManager::setAutoReloadPostponed(true);
|
||||
});
|
||||
connect(this, &VcsCommand::finished, this, [this] {
|
||||
if (flags() & ExpectRepoChanges)
|
||||
Core::DocumentManager::setAutoReloadPostponed(false);
|
||||
});
|
||||
}
|
||||
|
||||
const QProcessEnvironment VcsCommand::processEnvironment() const
|
||||
|
||||
Reference in New Issue
Block a user