diff --git a/plugins/git4idea/src/git4idea/branch/GitCheckoutOperation.java b/plugins/git4idea/src/git4idea/branch/GitCheckoutOperation.java index aa08d59c007b..faaa750fea79 100644 --- a/plugins/git4idea/src/git4idea/branch/GitCheckoutOperation.java +++ b/plugins/git4idea/src/git4idea/branch/GitCheckoutOperation.java @@ -26,6 +26,7 @@ import com.intellij.openapi.vcs.VcsNotifier; import com.intellij.openapi.vcs.changes.Change; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.util.ArrayUtil; +import com.intellij.util.containers.ContainerUtil; import git4idea.GitUtil; import git4idea.commands.*; import git4idea.config.GitVcsSettings; @@ -38,6 +39,7 @@ import javax.swing.event.HyperlinkEvent; import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; +import java.util.stream.Collectors; import static git4idea.util.GitUIUtil.code; import static java.util.Arrays.stream; @@ -53,8 +55,6 @@ import static java.util.Arrays.stream; */ class GitCheckoutOperation extends GitBranchOperation { - public static final String ROLLBACK_PROPOSAL_FORMAT = "You may rollback (checkout back to previous branch) not to let branches diverge."; - @NotNull private final String myStartPointReference; private final boolean myDetach; private final boolean myRefShouldBeValid; @@ -192,8 +192,15 @@ class GitCheckoutOperation extends GitBranchOperation { @NotNull @Override protected String getRollbackProposal() { + Collection distinctPrevBranches = getSuccessfulRepositories().stream(). + map(myCurrentHeads::get). + distinct(). + collect(Collectors.toList()); + String previousBranch = distinctPrevBranches.size() == 1 ? ContainerUtil.getFirstItem(distinctPrevBranches) : "previous branch"; + String rollBackProposal = "You may rollback (checkout back to " + previousBranch + ") not to let branches diverge."; return "However checkout has succeeded for the following " + repositories() + ":
" + - successfulRepositoriesJoined() + "
" + ROLLBACK_PROPOSAL_FORMAT; + successfulRepositoriesJoined() + "
" + + rollBackProposal; } @NotNull