Mercurial > jhg
comparison src/org/tmatesoft/hg/internal/RevlogStream.java @ 280:35125450c804
Erroneous and slow status for working copies based on non-tip revision
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 02 Sep 2011 13:40:09 +0200 |
| parents | 6bb5e7ed051a |
| children | b11f6a08f748 |
comparison
equal
deleted
inserted
replaced
| 279:23e3ea855097 | 280:35125450c804 |
|---|---|
| 61 this.dataAccess = dap; | 61 this.dataAccess = dap; |
| 62 this.indexFile = indexFile; | 62 this.indexFile = indexFile; |
| 63 } | 63 } |
| 64 | 64 |
| 65 /*package*/ DataAccess getIndexStream() { | 65 /*package*/ DataAccess getIndexStream() { |
| 66 // XXX may supply a hint that I'll need really few bytes of data (perhaps, at some offset) | |
| 67 // to avoid mmap files when only few bytes are to be read (i.e. #dataLength()) | |
| 66 return dataAccess.create(indexFile); | 68 return dataAccess.create(indexFile); |
| 67 } | 69 } |
| 68 | 70 |
| 69 /*package*/ DataAccess getDataStream() { | 71 /*package*/ DataAccess getDataStream() { |
| 70 final String indexName = indexFile.getName(); | 72 final String indexName = indexFile.getName(); |
| 79 | 81 |
| 80 public int dataLength(int revision) { | 82 public int dataLength(int revision) { |
| 81 // XXX in fact, use of iterate() instead of this implementation may be quite reasonable. | 83 // XXX in fact, use of iterate() instead of this implementation may be quite reasonable. |
| 82 // | 84 // |
| 83 final int indexSize = revisionCount(); | 85 final int indexSize = revisionCount(); |
| 84 DataAccess daIndex = getIndexStream(); // XXX may supply a hint that I'll need really few bytes of data (although at some offset) | 86 DataAccess daIndex = getIndexStream(); |
| 85 if (revision == TIP) { | 87 if (revision == TIP) { |
| 86 revision = indexSize - 1; | 88 revision = indexSize - 1; |
| 87 } | 89 } |
| 88 try { | 90 try { |
| 89 int recordOffset = getIndexOffsetInt(revision); | 91 int recordOffset = getIndexOffsetInt(revision); |
