tikhomirov@0: /** tikhomirov@0: * Copyright (c) 2010 Artem Tikhomirov tikhomirov@0: */ tikhomirov@0: package com.tmate.hgkit.ll; tikhomirov@0: tikhomirov@2: import java.io.DataInput; tikhomirov@2: import java.io.EOFException; tikhomirov@2: import java.io.IOException; tikhomirov@2: import java.util.ArrayList; tikhomirov@2: import java.util.Collections; tikhomirov@2: import java.util.List; tikhomirov@2: tikhomirov@0: /** tikhomirov@0: * Representation of the Mercurial changelog file (list of ChangeSets) tikhomirov@0: * @author artem tikhomirov@0: */ tikhomirov@2: public class Changelog extends Revlog { tikhomirov@0: tikhomirov@2: private RevlogStream content; tikhomirov@2: tikhomirov@2: /*package-local*/ Changelog(HgRepository hgRepo) { tikhomirov@2: super(hgRepo); tikhomirov@2: content = hgRepo.resolve(".hg/store/00changelog.i"); tikhomirov@2: } tikhomirov@2: tikhomirov@2: public List all() { tikhomirov@2: throw HgRepository.notImplemented(); tikhomirov@2: } tikhomirov@2: tikhomirov@2: public void all(Changeset.Callback callback) { tikhomirov@2: throw HgRepository.notImplemented(); tikhomirov@2: } tikhomirov@2: tikhomirov@2: public List range(int start, int end) { tikhomirov@2: //read from outline[start].start .. (outline[end].start + outline[end].length) tikhomirov@2: // parse changesets tikhomirov@2: final ArrayList rv = new ArrayList(end - start + 1); tikhomirov@2: Revlog.Inspector i = new Revlog.Inspector() { tikhomirov@2: tikhomirov@2: public void next(int compressedLen, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) { tikhomirov@2: // TODO Auto-generated method stub tikhomirov@2: Changeset.parse(data); tikhomirov@2: i.add(); tikhomirov@2: throw HgRepository.notImplemented(); tikhomirov@2: } tikhomirov@2: }; tikhomirov@2: content.iterate(start, end, true, i); tikhomirov@2: return rv; tikhomirov@2: } tikhomirov@0: }