summaryrefslogtreecommitdiff
path: root/plugins/git4idea/src/git4idea/actions/GitMergeAction.java
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/git4idea/src/git4idea/actions/GitMergeAction.java')
-rw-r--r--plugins/git4idea/src/git4idea/actions/GitMergeAction.java43
1 files changed, 25 insertions, 18 deletions
diff --git a/plugins/git4idea/src/git4idea/actions/GitMergeAction.java b/plugins/git4idea/src/git4idea/actions/GitMergeAction.java
index 1d46335cc1b1..e8bc37929a0d 100644
--- a/plugins/git4idea/src/git4idea/actions/GitMergeAction.java
+++ b/plugins/git4idea/src/git4idea/actions/GitMergeAction.java
@@ -81,27 +81,34 @@ abstract class GitMergeAction extends GitRepositoryAction {
final Git git = ServiceManager.getService(Git.class);
final GitLocalChangesWouldBeOverwrittenDetector localChangesDetector =
new GitLocalChangesWouldBeOverwrittenDetector(selectedRoot, MERGE);
- final GitUntrackedFilesOverwrittenByOperationDetector untrackedFilesDetector =
+ final GitUntrackedFilesOverwrittenByOperationDetector untrackedFilesDetector =
new GitUntrackedFilesOverwrittenByOperationDetector(selectedRoot);
- GitCommandResult result = git.runCommand(new Computable<GitLineHandler>() {
- @Override
- public GitLineHandler compute() {
- GitLineHandler handler = handlerProvider.compute();
- handler.addLineListener(localChangesDetector);
- handler.addLineListener(untrackedFilesDetector);
- return handler;
- }
- });
- affectedRoots.add(selectedRoot);
- GitRepository repository = repositoryManager.getRepositoryForRoot(selectedRoot);
- assert repository != null : "Repository can't be null for root " + selectedRoot;
- String revision = repository.getCurrentRevision();
- if (revision == null) {
- return;
+ GitUtil.workingTreeChangeStarted(project);
+ try {
+ GitCommandResult result = git.runCommand(new Computable<GitLineHandler>() {
+ @Override
+ public GitLineHandler compute() {
+ GitLineHandler handler = handlerProvider.compute();
+ handler.addLineListener(localChangesDetector);
+ handler.addLineListener(untrackedFilesDetector);
+ return handler;
+ }
+ });
+ affectedRoots.add(selectedRoot);
+
+ GitRepository repository = repositoryManager.getRepositoryForRoot(selectedRoot);
+ assert repository != null : "Repository can't be null for root " + selectedRoot;
+ String revision = repository.getCurrentRevision();
+ if (revision == null) {
+ return;
+ }
+ final GitRevisionNumber currentRev = new GitRevisionNumber(revision);
+ handleResult(result, project, localChangesDetector, untrackedFilesDetector, repository, currentRev, affectedRoots, beforeLabel);
+ }
+ finally {
+ GitUtil.workingTreeChangeFinished(project);
}
- final GitRevisionNumber currentRev = new GitRevisionNumber(revision);
- handleResult(result, project, localChangesDetector, untrackedFilesDetector, repository, currentRev, affectedRoots, beforeLabel);
}
}.queue();