Mercurial > jhg
comparison src/com/tmate/hgkit/ll/RevlogStream.java @ 37:e45e75e22523
Parse changesets from bundle's changelog group. Refactor Revlog to provide access to revision's raw content
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 14 Jan 2011 00:49:58 +0100 |
| parents | 205f9b59b400 |
| children | 1b26247d7367 |
comparison
equal
deleted
inserted
replaced
| 36:205f9b59b400 | 37:e45e75e22523 |
|---|---|
| 282 } | 282 } |
| 283 } | 283 } |
| 284 | 284 |
| 285 // mpatch.c : apply() | 285 // mpatch.c : apply() |
| 286 // FIXME need to implement patch merge (fold, combine, gather and discard from aforementioned mpatch.[c|py]), also see Revlog and Mercurial PDF | 286 // FIXME need to implement patch merge (fold, combine, gather and discard from aforementioned mpatch.[c|py]), also see Revlog and Mercurial PDF |
| 287 private static byte[] apply(byte[] baseRevisionContent, int outcomeLen, List<PatchRecord> patch) { | 287 // FIXME why 2 arrays (rv and tempBuf)???. Think over in-place merging (perhaps some sparse byte chunk list?) - to minimize mem use. |
| 288 /*package-local for HgBundle; until moved to better place*/static byte[] apply(byte[] baseRevisionContent, int outcomeLen, List<PatchRecord> patch) { | |
| 288 byte[] tempBuf = new byte[outcomeLen]; // XXX | 289 byte[] tempBuf = new byte[outcomeLen]; // XXX |
| 289 int last = 0, destIndex = 0; | 290 int last = 0, destIndex = 0; |
| 290 for (PatchRecord pr : patch) { | 291 for (PatchRecord pr : patch) { |
| 291 System.arraycopy(baseRevisionContent, last, tempBuf, destIndex, pr.start-last); | 292 System.arraycopy(baseRevisionContent, last, tempBuf, destIndex, pr.start-last); |
| 292 destIndex += pr.start - last; | 293 destIndex += pr.start - last; |
