Mercurial > hg4j
comparison src/org/tmatesoft/hg/repo/HgDataFile.java @ 77:c677e1593919
Moved RevlogStream implementation into .internal
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Mon, 24 Jan 2011 05:33:47 +0100 |
parents | 6f1b88693d48 |
children | c25c5c348d1b |
comparison
equal
deleted
inserted
replaced
76:658fa6b3a371 | 77:c677e1593919 |
---|---|
18 | 18 |
19 import static org.tmatesoft.hg.repo.HgRepository.TIP; | 19 import static org.tmatesoft.hg.repo.HgRepository.TIP; |
20 | 20 |
21 import org.tmatesoft.hg.core.Nodeid; | 21 import org.tmatesoft.hg.core.Nodeid; |
22 import org.tmatesoft.hg.core.Path; | 22 import org.tmatesoft.hg.core.Path; |
23 import org.tmatesoft.hg.internal.RevlogStream; | |
23 | 24 |
24 | 25 |
25 | 26 |
26 /** | 27 /** |
27 * ? name:HgFileNode? | 28 * ? name:HgFileNode? |
43 | 44 |
44 public boolean exists() { | 45 public boolean exists() { |
45 return content != null; // XXX need better impl | 46 return content != null; // XXX need better impl |
46 } | 47 } |
47 | 48 |
49 // human-readable (i.e. "COPYING", not "store/data/_c_o_p_y_i_n_g.i") | |
48 public Path getPath() { | 50 public Path getPath() { |
49 return path; // hgRepo.backresolve(this) -> name? | 51 return path; // hgRepo.backresolve(this) -> name? |
50 } | 52 } |
51 | 53 |
52 public int length(Nodeid nodeid) { | 54 public int length(Nodeid nodeid) { |
63 | 65 |
64 public void history(int start, int end, Changeset.Inspector inspector) { | 66 public void history(int start, int end, Changeset.Inspector inspector) { |
65 if (!exists()) { | 67 if (!exists()) { |
66 throw new IllegalStateException("Can't get history of invalid repository file node"); | 68 throw new IllegalStateException("Can't get history of invalid repository file node"); |
67 } | 69 } |
70 final int last = content.revisionCount() - 1; | |
71 if (start < 0 || start > last) { | |
72 throw new IllegalArgumentException(); | |
73 } | |
74 if (end == TIP) { | |
75 end = last; | |
76 } else if (end < start || end > last) { | |
77 throw new IllegalArgumentException(); | |
78 } | |
68 final int[] commitRevisions = new int[end - start + 1]; | 79 final int[] commitRevisions = new int[end - start + 1]; |
69 Revlog.Inspector insp = new Revlog.Inspector() { | 80 RevlogStream.Inspector insp = new RevlogStream.Inspector() { |
70 int count = 0; | 81 int count = 0; |
71 | 82 |
72 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) { | 83 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) { |
73 commitRevisions[count++] = linkRevision; | 84 commitRevisions[count++] = linkRevision; |
74 } | 85 } |