diff options
Diffstat (limited to 'plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java')
-rw-r--r-- | plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java b/plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java index bd8635db89be..033b1fd106fc 100644 --- a/plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java +++ b/plugins/git4idea/src/git4idea/cherrypick/GitCherryPicker.java @@ -33,6 +33,7 @@ import com.intellij.util.Function; import com.intellij.util.containers.ContainerUtil; import com.intellij.vcs.log.VcsFullCommitDetails; import git4idea.GitPlatformFacade; +import git4idea.GitUtil; import git4idea.commands.Git; import git4idea.commands.GitCommandResult; import git4idea.commands.GitSimpleEventDetector; @@ -80,15 +81,21 @@ public class GitCherryPicker { public void cherryPick(@NotNull Map<GitRepository, List<VcsFullCommitDetails>> commitsInRoots) { List<GitCommitWrapper> successfulCommits = new ArrayList<GitCommitWrapper>(); - for (Map.Entry<GitRepository, List<VcsFullCommitDetails>> entry : commitsInRoots.entrySet()) { - GitRepository repository = entry.getKey(); - boolean result = cherryPick(repository, entry.getValue(), successfulCommits); - repository.update(); - if (!result) { - return; + GitUtil.workingTreeChangeStarted(myProject); + try { + for (Map.Entry<GitRepository, List<VcsFullCommitDetails>> entry : commitsInRoots.entrySet()) { + GitRepository repository = entry.getKey(); + boolean result = cherryPick(repository, entry.getValue(), successfulCommits); + repository.update(); + if (!result) { + return; + } } + notifySuccess(successfulCommits); + } + finally { + GitUtil.workingTreeChangeFinished(myProject); } - notifySuccess(successfulCommits); } // return true to continue with other roots, false to break execution |