Git: Fix popping of branch-stash after checkout

Checking out a branch that has a saved stash, when
Pop branch stash is checked, is broken since checkout
became asynchronous.

We must wait for checkout to complete before popping
the branch stash.

Change-Id: Ia4d43649e742ced0121ffe106986b4d6ed1e7b38
Reviewed-by: André Hartmann <aha_1980@gmx.de>
This commit is contained in:
Orgad Shaneh
2019-06-26 16:15:12 +03:00
committed by Orgad Shaneh
parent 0d7f33aa71
commit a1ba347fa5
5 changed files with 34 additions and 23 deletions

View File

@@ -1119,11 +1119,11 @@ VcsBaseEditorWidget *GitClient::annotate(
return editor;
}
void GitClient::checkout(const QString &workingDirectory, const QString &ref,
StashMode stashMode)
VcsCommand *GitClient::checkout(const QString &workingDirectory, const QString &ref,
StashMode stashMode)
{
if (stashMode == StashMode::TryStash && !beginStashScope(workingDirectory, "Checkout"))
return;
return nullptr;
QStringList arguments = setupCheckoutArguments(workingDirectory, ref);
VcsCommand *command = vcsExec(
workingDirectory, arguments, nullptr, true,
@@ -1135,6 +1135,7 @@ void GitClient::checkout(const QString &workingDirectory, const QString &ref,
if (success)
updateSubmodulesIfNeeded(workingDirectory, true);
});
return command;
}
/* method used to setup arguments for checkout, in case user wants to create local branch */