changeset 257:f39fb6b3cc76

Handle revision constants correctly
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Tue, 16 Aug 2011 22:07:16 +0200
parents b61ed0f2c4da
children e5776067b3b8
files src/org/tmatesoft/hg/repo/HgManifest.java
diffstat 1 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/repo/HgManifest.java	Tue Aug 16 15:45:47 2011 +0200
+++ b/src/org/tmatesoft/hg/repo/HgManifest.java	Tue Aug 16 22:07:16 2011 +0200
@@ -90,6 +90,10 @@
 		if (HgInternals.wrongLocalRevision(revisionNumber)) {
 			throw new IllegalArgumentException(String.valueOf(revisionNumber));
 		}
+		if (revisionNumber == HgRepository.WORKING_COPY || revisionNumber == HgRepository.BAD_REVISION) {
+			throw new IllegalArgumentException("Can't use constants like WORKING_COPY or BAD_REVISION");
+		}
+		// revisionNumber == TIP is processed by RevisionMapper 
 		if (revisionMap == null) {
 			revisionMap = new RevisionMapper(getRepo());
 			content.iterate(0, TIP, false, revisionMap);
@@ -211,7 +215,11 @@
 			changelogRevisions = repo.getChangelog().getRevisionCount();
 		}
 
+		// respects TIP
 		public int at(int revisionNumber) {
+			if (revisionNumber == TIP) {
+				revisionNumber = changelogRevisions - 1;
+			}
 			if (changelog2manifest != null) {
 				return changelog2manifest[revisionNumber];
 			}