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) {