Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/Revlog.java @ 192:e5407b5a586a
Incoming and Outgoing commands are alive
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Fri, 15 Apr 2011 03:17:03 +0200 |
parents | b777502a06f5 |
children | 3a7696fb457c |
comparison
equal
deleted
inserted
replaced
191:b777502a06f5 | 192:e5407b5a586a |
---|---|
206 | 206 |
207 public ParentWalker() { | 207 public ParentWalker() { |
208 firstParent = secondParent = Collections.emptyMap(); | 208 firstParent = secondParent = Collections.emptyMap(); |
209 } | 209 } |
210 | 210 |
211 public HgRepository getRepo() { | |
212 return Revlog.this.getRepo(); | |
213 } | |
214 | |
211 public void init() { | 215 public void init() { |
212 final RevlogStream stream = Revlog.this.content; | 216 final RevlogStream stream = Revlog.this.content; |
213 final int revisionCount = stream.revisionCount(); | 217 final int revisionCount = stream.revisionCount(); |
214 firstParent = new HashMap<Nodeid, Nodeid>(revisionCount); | 218 firstParent = new HashMap<Nodeid, Nodeid>(revisionCount); |
215 secondParent = new HashMap<Nodeid, Nodeid>(firstParent.size() >> 1); // assume branches/merges are less frequent | 219 secondParent = new HashMap<Nodeid, Nodeid>(firstParent.size() >> 1); // assume branches/merges are less frequent |
307 } | 311 } |
308 } | 312 } |
309 // leave only those of interest in ordered sequence | 313 // leave only those of interest in ordered sequence |
310 orderedResult.retainAll(result); | 314 orderedResult.retainAll(result); |
311 return orderedResult; | 315 return orderedResult; |
316 } | |
317 | |
318 /** | |
319 * @param node possibly parent node | |
320 * @return <code>true</code> if there's any node in this revlog that has specified node as one of its parents. | |
321 */ | |
322 public boolean hasChildren(Nodeid node) { | |
323 // FIXME containsValue is linear, likely. May want to optimize it with another (Tree|Hash)Set, created on demand | |
324 // on first use | |
325 return firstParent.containsValue(node) || secondParent.containsValue(node); | |
312 } | 326 } |
313 } | 327 } |
314 | 328 |
315 protected static class ContentPipe implements RevlogStream.Inspector, CancelSupport { | 329 protected static class ContentPipe implements RevlogStream.Inspector, CancelSupport { |
316 private final ByteChannel sink; | 330 private final ByteChannel sink; |