diff test/org/tmatesoft/hg/test/MapTagsToFileRevisions.java @ 426:063b0663495a

HgManifest#getFileRevisions refactored into #walkFileRevisions to match pattern throught rest of the library
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 28 Mar 2012 19:34:37 +0200
parents 6437d261048a
children 31a89587eb04
line wrap: on
line diff
--- a/test/org/tmatesoft/hg/test/MapTagsToFileRevisions.java	Wed Mar 28 18:39:29 2012 +0200
+++ b/test/org/tmatesoft/hg/test/MapTagsToFileRevisions.java	Wed Mar 28 19:34:37 2012 +0200
@@ -338,7 +338,27 @@
 		HgDataFile fileNode = repository.getFileNode(targetPath);
 		final long start2 = System.nanoTime();
 		final int lastRev = fileNode.getLastRevision();
-		final Map<Integer, Nodeid> fileRevisionAtTagRevision = repository.getManifest().getFileRevisions(targetPath, tagLocalRevs);
+		final Map<Integer, Nodeid> fileRevisionAtTagRevision = new HashMap<Integer, Nodeid>();
+		HgManifest.Inspector collectFileRevAtCset = new HgManifest.Inspector() {
+			
+			private int csetRevIndex;
+
+			public boolean next(Nodeid nid, Path fname, Flags flags) {
+				fileRevisionAtTagRevision.put(csetRevIndex, nid);
+				return true;
+			}
+			
+			public boolean end(int manifestRevision) {
+				return true;
+			}
+			
+			public boolean begin(int mainfestRevision, Nodeid nid, int changelogRevision) {
+				csetRevIndex = changelogRevision;
+				return true;
+			}
+		};
+		repository.getManifest().walkFileRevisions(targetPath, collectFileRevAtCset,tagLocalRevs);
+
 		final long start2a = System.nanoTime();
 		fileNode.walk(0, lastRev, new HgDataFile.RevisionInspector() {