From 209ebc20a3c3b71364d5db9b264df08c785ca2a3 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Fri, 10 Oct 2014 12:54:56 +0400 Subject: [PATCH] IDEA-129339: show tracked branches in general "remote/..." groups --- .../src/git4idea/log/GitRefManager.java | 23 ++++++++----------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/plugins/git4idea/src/git4idea/log/GitRefManager.java b/plugins/git4idea/src/git4idea/log/GitRefManager.java index 6469a1fef1bd..70f80fce0a09 100644 --- a/plugins/git4idea/src/git4idea/log/GitRefManager.java +++ b/plugins/git4idea/src/git4idea/log/GitRefManager.java @@ -156,7 +156,7 @@ public class GitRefManager implements VcsLogRefManager { Set locals = getLocalBranches(repository); Set tracked = getTrackedRemoteBranches(repository); - Map nonTracked = getNonTrackedRemoteBranches(repository); + Map allRemote = getAllRemoteBranches(repository); for (VcsRef ref : refsInRoot) { if (ref.getType() == HEAD) { @@ -168,11 +168,11 @@ public class GitRefManager implements VcsLogRefManager { if (locals.contains(refName)) { localBranches.add(ref); } - else if (tracked.contains(refName)) { - trackedBranches.add(ref); - } - else if (nonTracked.containsKey(refName)) { - remoteRefGroups.putValue(nonTracked.get(refName), ref); + else if (allRemote.containsKey(refName)) { + remoteRefGroups.putValue(allRemote.get(refName), ref); + if (tracked.contains(refName)) { + trackedBranches.add(ref); + } } else { LOG.debug("Didn't find ref neither in local nor in remote branches: " + ref); @@ -215,16 +215,13 @@ public class GitRefManager implements VcsLogRefManager { } @NotNull - private static Map getNonTrackedRemoteBranches(@NotNull GitRepository repository) { + private static Map getAllRemoteBranches(@NotNull GitRepository repository) { Set all = new HashSet(repository.getBranches().getRemoteBranches()); - Set tracked = getTrackedRemoteBranchesFromConfig(repository); - Map nonTracked = ContainerUtil.newHashMap(); + Map allRemote = ContainerUtil.newHashMap(); for (GitRemoteBranch remoteBranch : all) { - if (!tracked.contains(remoteBranch.getName())) { - nonTracked.put(remoteBranch.getName(), remoteBranch.getRemote()); - } + allRemote.put(remoteBranch.getName(), remoteBranch.getRemote()); } - return nonTracked; + return allRemote; } private static Set getTrackedRemoteBranchesFromConfig(GitRepository repository) {