Git: Fix progress during rebase

Broke by c4b5048836.

Change-Id: I35b22b6ab5fd8767ef729906b8344a0d6aa1f0cf
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Orgad Shaneh
2017-10-01 12:32:54 +03:00
committed by Orgad Shaneh
parent e20aa431ed
commit 84b57027c8
2 changed files with 10 additions and 7 deletions

View File

@@ -2863,8 +2863,7 @@ bool GitClient::canRebase(const QString &workingDirectory) const
void GitClient::rebase(const QString &workingDirectory, const QString &argument) void GitClient::rebase(const QString &workingDirectory, const QString &argument)
{ {
VcsCommand *command = vcsExecAbortable(workingDirectory, {"rebase", argument}); vcsExecAbortable(workingDirectory, {"rebase", argument}, true);
GitProgressParser::attachToCommand(command);
} }
void GitClient::cherryPick(const QString &workingDirectory, const QString &argument) void GitClient::cherryPick(const QString &workingDirectory, const QString &argument)
@@ -2880,7 +2879,8 @@ void GitClient::revert(const QString &workingDirectory, const QString &argument)
// Executes a command asynchronously. Work tree is expected to be clean. // Executes a command asynchronously. Work tree is expected to be clean.
// Stashing is handled prior to this call. // Stashing is handled prior to this call.
VcsCommand *GitClient::vcsExecAbortable(const QString &workingDirectory, VcsCommand *GitClient::vcsExecAbortable(const QString &workingDirectory,
const QStringList &arguments) const QStringList &arguments,
bool createProgressParser)
{ {
QTC_ASSERT(!arguments.isEmpty(), return nullptr); QTC_ASSERT(!arguments.isEmpty(), return nullptr);
@@ -2890,8 +2890,10 @@ VcsCommand *GitClient::vcsExecAbortable(const QString &workingDirectory,
command->setCookie(workingDirectory); command->setCookie(workingDirectory);
command->addFlags(VcsCommand::ShowSuccessMessage); command->addFlags(VcsCommand::ShowSuccessMessage);
command->addJob(vcsBinary(), arguments, 0); command->addJob(vcsBinary(), arguments, 0);
command->execute();
ConflictHandler::attachToCommand(command, abortCommand); ConflictHandler::attachToCommand(command, abortCommand);
if (createProgressParser)
GitProgressParser::attachToCommand(command);
command->execute();
return command; return command;
} }
@@ -2929,8 +2931,7 @@ void GitClient::interactiveRebase(const QString &workingDirectory, const QString
arguments << commit + '^'; arguments << commit + '^';
if (fixup) if (fixup)
m_disableEditor = true; m_disableEditor = true;
VcsCommand *command = vcsExecAbortable(workingDirectory, arguments); vcsExecAbortable(workingDirectory, arguments, true);
GitProgressParser::attachToCommand(command);
if (fixup) if (fixup)
m_disableEditor = false; m_disableEditor = false;
} }

View File

@@ -124,7 +124,9 @@ public:
Utils::FileName vcsBinary() const override; Utils::FileName vcsBinary() const override;
unsigned gitVersion(QString *errorMessage = nullptr) const; unsigned gitVersion(QString *errorMessage = nullptr) const;
VcsBase::VcsCommand *vcsExecAbortable(const QString &workingDirectory, const QStringList &arguments); VcsBase::VcsCommand *vcsExecAbortable(const QString &workingDirectory,
const QStringList &arguments,
bool createProgressParser = false);
QString findRepositoryForDirectory(const QString &dir) const; QString findRepositoryForDirectory(const QString &dir) const;
QString findGitDirForRepository(const QString &repositoryDir) const; QString findGitDirForRepository(const QString &repositoryDir) const;