Merge lp:~frankoid/bzr4j/idea-update-trunk into lp:bzr4j

Proposed by Francis Devereux
Status: Merged
Merged at revision: 27
Proposed branch: lp:~frankoid/bzr4j/idea-update-trunk
Merge into: lp:bzr4j
Diff against target: 207 lines (+60/-30)
3 files modified
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrLogCommand.java (+21/-13)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrHistoryProvider.java (+38/-14)
modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/annotate/BzrAnnotationProvider.java (+1/-3)
To merge this branch: bzr merge lp:~frankoid/bzr4j/idea-update-trunk
Reviewer Review Type Date Requested Status
Patrick Woodworth Pending
Review via email: mp+20502@code.launchpad.net
To post a comment you must log in.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrLogCommand.java'
2--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrLogCommand.java 2010-03-02 20:44:47 +0000
3+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/command/BzrLogCommand.java 2010-03-03 00:22:12 +0000
4@@ -15,13 +15,13 @@
5 import com.intellij.openapi.diagnostic.Logger;
6 import com.intellij.openapi.project.Project;
7 import com.intellij.openapi.vcs.history.VcsFileRevision;
8+import com.intellij.util.Consumer;
9 import org.emergent.bzr4j.core.cli.BzrXmlResult;
10 import org.emergent.bzr4j.core.xmloutput.XmlOutputHandler;
11 import org.emergent.bzr4j.intellij.BzrFile;
12 import org.emergent.bzr4j.intellij.BzrFileRevision;
13 import org.emergent.bzr4j.intellij.BzrRevisionNumber;
14
15-import java.util.Collections;
16 import java.util.Date;
17 import java.util.LinkedList;
18 import java.util.List;
19@@ -30,37 +30,45 @@
20
21 private static final Logger LOG = Logger.getInstance(BzrLogCommand.class.getName());
22
23- private static final int REVISION_INDEX = 0;
24-
25 public BzrLogCommand(Project project) {
26 super(project);
27 }
28
29- public final List<VcsFileRevision> execute(final BzrFile hgFile, int limit) {
30- if (limit <= REVISION_INDEX || hgFile == null || hgFile.getRepo() == null) {
31- return Collections.emptyList();
32+ public final List<VcsFileRevision> execute(final BzrFile bzrFile) {
33+ final List<VcsFileRevision> revisions = new LinkedList<VcsFileRevision>();
34+
35+ execute(bzrFile, new Consumer<VcsFileRevision>() {
36+ public void consume(VcsFileRevision revision) {
37+ revisions.add(revision);
38+ }
39+ });
40+
41+ return revisions;
42+ }
43+
44+ public final void execute(final BzrFile bzrFile, final Consumer<VcsFileRevision> consumer) {
45+ if (bzrFile == null || bzrFile.getRepo() == null) {
46+ return;
47 }
48
49- BzrIdeaExec handler = BzrIdeaExec.createBzrIdeaExec(hgFile.getRepo(), "xmllog");
50+ BzrIdeaExec handler = BzrIdeaExec.createBzrIdeaExec(bzrFile.getRepo(), "xmllog");
51
52- ShellCommandService hgCommandService = ShellCommandService.getInstance(project);
53+ ShellCommandService bzrCommandService = ShellCommandService.getInstance(project);
54
55 List<String> arguments = new LinkedList<String>();
56- arguments.add(hgFile.getRelativePath());
57+ arguments.add(bzrFile.getRelativePath());
58
59 handler.addArguments(arguments);
60
61- final List<VcsFileRevision> revisions = new LinkedList<VcsFileRevision>();
62 XmlOutputHandler resultHandler = new XmlOutputHandler() {
63 @Override
64 public void handleLog(String revno, String committer, String branchNick, Date timestamp, String message) {
65 BzrRevisionNumber bzrRev = BzrRevisionNumber.getLocalInstance(revno);
66- revisions.add(new BzrFileRevision(project, hgFile, bzrRev, branchNick, timestamp, committer, message));
67+ consumer.consume(new BzrFileRevision(project, bzrFile, bzrRev, branchNick, timestamp, committer, message));
68 }
69 };
70
71- hgCommandService.execute(handler, BzrXmlResult.createBzrXmlResult(resultHandler));
72- return revisions;
73+ bzrCommandService.execute(handler, BzrXmlResult.createBzrXmlResult(resultHandler));
74 }
75
76 }
77
78=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrHistoryProvider.java'
79--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrHistoryProvider.java 2010-03-02 20:44:47 +0000
80+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/BzrHistoryProvider.java 2010-03-03 00:22:12 +0000
81@@ -17,32 +17,31 @@
82 import com.intellij.openapi.project.Project;
83 import com.intellij.openapi.vcs.FilePath;
84 import com.intellij.openapi.vcs.VcsException;
85-import com.intellij.openapi.vcs.history.FileHistoryPanel;
86 import com.intellij.openapi.vcs.history.HistoryAsTreeProvider;
87+import com.intellij.openapi.vcs.history.VcsAbstractHistorySession;
88+import com.intellij.openapi.vcs.history.VcsAppendableHistorySessionPartner;
89 import com.intellij.openapi.vcs.history.VcsDependentHistoryComponents;
90 import com.intellij.openapi.vcs.history.VcsFileRevision;
91 import com.intellij.openapi.vcs.history.VcsHistoryProvider;
92 import com.intellij.openapi.vcs.history.VcsHistorySession;
93 import com.intellij.openapi.vcs.history.VcsRevisionNumber;
94 import com.intellij.openapi.vfs.VirtualFile;
95+import com.intellij.util.Consumer;
96 import com.intellij.util.ui.ColumnInfo;
97 import com.intellij.vcsUtil.VcsUtil;
98 import org.emergent.bzr4j.intellij.BzrFile;
99-import org.emergent.bzr4j.intellij.BzrFileRevision;
100 import org.emergent.bzr4j.intellij.command.BzrLogCommand;
101 import org.emergent.bzr4j.intellij.command.BzrMiscCommand;
102-import org.emergent.bzr4j.intellij.command.BzrWorkingCopyRevisionsCommand;
103
104 import javax.swing.*;
105-import java.util.LinkedList;
106+import java.util.Collections;
107 import java.util.List;
108
109 public class BzrHistoryProvider implements VcsHistoryProvider {
110
111+ @SuppressWarnings({ "UnusedDeclaration" })
112 private static final Logger LOG = Logger.getInstance(BzrHistoryProvider.class.getName());
113
114- private static final int DEFAULT_LIMIT = 500;
115-
116 private final Project project;
117
118 public BzrHistoryProvider(Project project) {
119@@ -54,7 +53,7 @@
120 return VcsDependentHistoryComponents.createOnlyColumns(new ColumnInfo[0]);
121 }
122
123- public AnAction[] getAdditionalActions(FileHistoryPanel panel) {
124+ public AnAction[] getAdditionalActions(Runnable runnable) {
125 return new AnAction[0];
126 }
127
128@@ -66,26 +65,51 @@
129 return null;
130 }
131
132+ public void reportAppendableHistory(
133+ FilePath filePath, final VcsAppendableHistorySessionPartner partner) throws VcsException {
134+ final VirtualFile vcsRoot = VcsUtil.getVcsRootFor(project, filePath);
135+ if (vcsRoot == null) {
136+ return;
137+ }
138+
139+ BzrFile bzrFile = new BzrFile(vcsRoot, filePath);
140+
141+ partner.reportCreatedEmptySession(createBzrHistorySession(Collections.<VcsFileRevision>emptyList(), vcsRoot));
142+
143+ BzrLogCommand logCommand = new BzrLogCommand(project);
144+ logCommand.execute(bzrFile, new Consumer<VcsFileRevision>() {
145+ public void consume(VcsFileRevision revision) {
146+ partner.acceptRevision(revision);
147+ }
148+ });
149+ }
150+
151 public VcsHistorySession createSessionFor(FilePath filePath) throws VcsException {
152 final VirtualFile vcsRoot = VcsUtil.getVcsRootFor(project, filePath);
153 if (vcsRoot == null) {
154 return null;
155 }
156- BzrFile hgFile = new BzrFile(vcsRoot, filePath);
157+
158+ BzrFile bzrFile = new BzrFile(vcsRoot, filePath);
159 BzrLogCommand logCommand = new BzrLogCommand(project);
160- List<VcsFileRevision> result = logCommand.execute(hgFile, DEFAULT_LIMIT);
161- return new VcsHistorySession(result) {
162+ List<VcsFileRevision> revisions = logCommand.execute(bzrFile);
163+ return createBzrHistorySession(revisions, vcsRoot);
164+ }
165+
166+ private VcsAbstractHistorySession createBzrHistorySession(
167+ final List<VcsFileRevision> revisions, final VirtualFile vcsRoot) {
168+ return new VcsAbstractHistorySession(revisions) {
169 @Override
170 protected VcsRevisionNumber calcCurrentRevisionNumber() {
171 return BzrMiscCommand.revno(project,vcsRoot);
172 }
173+
174+ public HistoryAsTreeProvider getHistoryAsTreeProvider() {
175+ return null;
176+ }
177 };
178 }
179
180- public HistoryAsTreeProvider getTreeHistoryProvider() {
181- return null;
182- }
183-
184 public boolean supportsHistoryForDirectories() {
185 return true;
186 }
187
188=== modified file 'modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/annotate/BzrAnnotationProvider.java'
189--- modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/annotate/BzrAnnotationProvider.java 2010-01-05 02:18:38 +0000
190+++ modules/intellij/src/main/java/org/emergent/bzr4j/intellij/provider/annotate/BzrAnnotationProvider.java 2010-03-03 00:22:12 +0000
191@@ -26,8 +26,6 @@
192
193 public class BzrAnnotationProvider implements AnnotationProvider {
194
195- private static final int DEFAULT_LIMIT = 500;
196-
197 private final Project project;
198
199 public BzrAnnotationProvider(Project project) {
200@@ -45,7 +43,7 @@
201 return new BzrAnnotation(
202 hgFile,
203 hgAnnotateCommand.execute(hgFile),
204- hgLogCommand.execute(hgFile, DEFAULT_LIMIT)
205+ hgLogCommand.execute(hgFile)
206 );
207 }
208

Subscribers

People subscribed via source and target branches