comparison src/com/tmate/hgkit/ll/HgDataFile.java @ 5:fc265ddeab26

File content and non-effective, although working, patch application
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 21 Dec 2010 05:11:06 +0100
parents 24bb4f365164
children 571e1b2cc3f7
comparison
equal deleted inserted replaced
4:aa1912c70b36 5:fc265ddeab26
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
6 import static com.tmate.hgkit.ll.HgRepository.TIP;
5 7
6 /** 8 /**
7 * Extends Revlog/uses RevlogStream? 9 * Extends Revlog/uses RevlogStream?
8 * ? name:HgFileNode? 10 * ? name:HgFileNode?
9 * @author artem 11 * @author artem
29 31
30 public String getPath() { 32 public String getPath() {
31 return path; // hgRepo.backresolve(this) -> name? 33 return path; // hgRepo.backresolve(this) -> name?
32 } 34 }
33 35
34 private static final int TIP = -2; 36 public int getRevisionCount() {
37 return content.revisionCount();
38 }
35 39
36 public byte[] content() { 40 public byte[] content() {
37 return content(TIP); 41 return content(TIP);
38 } 42 }
39 43
40 public byte[] content(int revision) { 44 public byte[] content(int revision) {
41 throw HgRepository.notImplemented(); 45 final byte[][] dataPtr = new byte[1][];
46 Revlog.Inspector insp = new Revlog.Inspector() {
47 public void next(int revisionNumber, int actualLen, int baseRevision, int linkRevision, int parent1Revision, int parent2Revision, byte[] nodeid, byte[] data) {
48 dataPtr[0] = data;
49 }
50 };
51 content.iterate(revision, revision, true, insp);
52 return dataPtr[0];
42 } 53 }
43 54
44 public void history(Changeset.Inspector inspector) { 55 public void history(Changeset.Inspector inspector) {
45 if (!exists()) { 56 if (!exists()) {
46 throw new IllegalStateException("Can't get history of invalid repository file node"); 57 throw new IllegalStateException("Can't get history of invalid repository file node");