comparison src/com/tmate/hgkit/ll/Changelog.java @ 2:08db726a0fb7

Shaping out low-level Hg structures
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Sun, 19 Dec 2010 05:41:31 +0100
parents dbd663faec1f
children 24bb4f365164
comparison
equal deleted inserted replaced
1:a3576694a4d1 2:08db726a0fb7
1 /** 1 /**
2 * Copyright (c) 2010 Artem Tikhomirov 2 * Copyright (c) 2010 Artem Tikhomirov
3 */ 3 */
4 package com.tmate.hgkit.ll; 4 package com.tmate.hgkit.ll;
5 5
6 import java.io.DataInput;
7 import java.io.EOFException;
8 import java.io.IOException;
9 import java.util.ArrayList;
10 import java.util.Collections;
11 import java.util.List;
12
6 /** 13 /**
7 * Representation of the Mercurial changelog file (list of ChangeSets) 14 * Representation of the Mercurial changelog file (list of ChangeSets)
8 * @author artem 15 * @author artem
9 */ 16 */
10 public class Changelog { 17 public class Changelog extends Revlog {
11 18
19 private RevlogStream content;
20
21 /*package-local*/ Changelog(HgRepository hgRepo) {
22 super(hgRepo);
23 content = hgRepo.resolve(".hg/store/00changelog.i");
24 }
25
26 public List<Changeset> all() {
27 throw HgRepository.notImplemented();
28 }
29
30 public void all(Changeset.Callback callback) {
31 throw HgRepository.notImplemented();
32 }
33
34 public List<Changeset> range(int start, int end) {
35 //read from outline[start].start .. (outline[end].start + outline[end].length)
36 // parse changesets
37 final ArrayList<Changeset> rv = new ArrayList<Changeset>(end - start + 1);
38 Revlog.Inspector i = new Revlog.Inspector() {
39
40 public void next(int compressedLen, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) {
41 // TODO Auto-generated method stub
42 Changeset.parse(data);
43 i.add();
44 throw HgRepository.notImplemented();
45 }
46 };
47 content.iterate(start, end, true, i);
48 return rv;
49 }
12 } 50 }