diff options
author | Tor Norbye <tnorbye@google.com> | 2014-09-18 13:38:58 -0700 |
---|---|---|
committer | Tor Norbye <tnorbye@google.com> | 2014-09-18 13:38:58 -0700 |
commit | b5fb31ef6a38f19404859755dbd2e345215b97bf (patch) | |
tree | e8787c45e494dfcc558faf0f75956f8785c39b94 /plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java | |
parent | e222a9e1e66670a56e926a6b0f3e10231eeeb1fb (diff) | |
parent | e782c57d74000722f9db4c9426317410520670c6 (diff) | |
download | idea-b5fb31ef6a38f19404859755dbd2e345215b97bf.tar.gz |
Merge remote-tracking branch 'aosp/upstream-master' into merge
Conflicts:
.idea/libraries/asm_tools.xml
.idea/libraries/bouncy_castle.xml
.idea/libraries/builder_model.xml
.idea/libraries/commons_compress.xml
.idea/libraries/easymock_tools.xml
.idea/libraries/freemarker_2_3_20.xml
.idea/libraries/guava_tools.xml
.idea/libraries/kxml2.xml
.idea/libraries/lombok_ast.xml
.idea/libraries/mockito.xml
.idea/modules.xml
.idea/vcs.xml
build/scripts/layouts.gant
updater/src/com/intellij/updater/Runner.java
Change-Id: I8e1c173e00cd76c855b8a98543b0a0edfdd99d12
Diffstat (limited to 'plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java')
-rw-r--r-- | plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java b/plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java index 3b989e448b61..109e83899e5b 100644 --- a/plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java +++ b/plugins/hg4idea/src/org/zmlx/hg4idea/log/HgLogProvider.java @@ -22,9 +22,11 @@ import com.intellij.openapi.util.Couple; import com.intellij.openapi.vcs.VcsException; import com.intellij.openapi.vcs.VcsKey; import com.intellij.openapi.vfs.VirtualFile; +import com.intellij.util.CollectConsumer; import com.intellij.util.Consumer; import com.intellij.util.containers.ContainerUtil; import com.intellij.vcs.log.*; +import com.intellij.vcs.log.impl.LogDataImpl; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import org.zmlx.hg4idea.HgNameWithHashInfo; @@ -59,18 +61,23 @@ public class HgLogProvider implements VcsLogProvider { @NotNull @Override - public List<? extends VcsCommitMetadata> readFirstBlock(@NotNull VirtualFile root, - @NotNull Requirements requirements) throws VcsException { - return HgHistoryUtil.loadMetadata(myProject, root, requirements.getCommitCount(), Collections.<String>emptyList()); + public DetailedLogData readFirstBlock(@NotNull VirtualFile root, + @NotNull Requirements requirements) throws VcsException { + List<VcsCommitMetadata> commits = HgHistoryUtil.loadMetadata(myProject, root, requirements.getCommitCount(), + Collections.<String>emptyList()); + return new LogDataImpl(readAllRefs(root), commits); } @Override - public void readAllHashes(@NotNull VirtualFile root, @NotNull Consumer<VcsUser> userRegistry, - @NotNull Consumer<TimedVcsCommit> commitConsumer) throws VcsException { - List<TimedVcsCommit> commits = HgHistoryUtil.readAllHashes(myProject, root, userRegistry, Collections.<String>emptyList()); + @NotNull + public LogData readAllHashes(@NotNull VirtualFile root, @NotNull final Consumer<TimedVcsCommit> commitConsumer) throws VcsException { + Set<VcsUser> userRegistry = ContainerUtil.newHashSet(); + List<TimedVcsCommit> commits = HgHistoryUtil.readAllHashes(myProject, root, new CollectConsumer<VcsUser>(userRegistry), + Collections.<String>emptyList()); for (TimedVcsCommit commit : commits) { commitConsumer.consume(commit); } + return new LogDataImpl(readAllRefs(root), userRegistry); } @NotNull @@ -87,16 +94,15 @@ public class HgLogProvider implements VcsLogProvider { } @NotNull - @Override - public Collection<VcsRef> readAllRefs(@NotNull VirtualFile root) throws VcsException { + private Set<VcsRef> readAllRefs(@NotNull VirtualFile root) throws VcsException { myRepositoryManager.waitUntilInitialized(); if (myProject.isDisposed()) { - return Collections.emptyList(); + return Collections.emptySet(); } HgRepository repository = myRepositoryManager.getRepositoryForRoot(root); if (repository == null) { LOG.error("Repository not found for root " + root); - return Collections.emptyList(); + return Collections.emptySet(); } repository.update(); @@ -106,7 +112,7 @@ public class HgLogProvider implements VcsLogProvider { Collection<HgNameWithHashInfo> tags = repository.getTags(); Collection<HgNameWithHashInfo> localTags = repository.getLocalTags(); - Collection<VcsRef> refs = new ArrayList<VcsRef>(branches.size() + bookmarks.size()); + Set<VcsRef> refs = new HashSet<VcsRef>(branches.size() + bookmarks.size()); for (Map.Entry<String, Set<Hash>> entry : branches.entrySet()) { String branchName = entry.getKey(); |