Mercurial > hg4j
diff src/org/tmatesoft/hg/core/HgManifestCommand.java @ 565:78a9e26e670d
Refactor common code to initialize changelog revision for a command into standalone class
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Tue, 09 Apr 2013 17:15:30 +0200 |
parents | 3ca4ae7bdd38 |
children | 6526d8adbc0f |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgManifestCommand.java Wed Apr 03 21:28:06 2013 +0200 +++ b/src/org/tmatesoft/hg/core/HgManifestCommand.java Tue Apr 09 17:15:30 2013 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2011-2012 TMate Software Ltd + * Copyright (c) 2011-2013 TMate Software Ltd * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -17,19 +17,17 @@ package org.tmatesoft.hg.core; import static org.tmatesoft.hg.repo.HgRepository.*; -import static org.tmatesoft.hg.repo.HgRepository.BAD_REVISION; -import static org.tmatesoft.hg.repo.HgRepository.TIP; import java.util.ConcurrentModificationException; import java.util.LinkedHashMap; import java.util.LinkedList; import java.util.List; +import org.tmatesoft.hg.internal.CsetParamKeeper; import org.tmatesoft.hg.internal.PathPool; -import org.tmatesoft.hg.repo.HgInvalidRevisionException; import org.tmatesoft.hg.repo.HgManifest; +import org.tmatesoft.hg.repo.HgManifest.Flags; import org.tmatesoft.hg.repo.HgRepository; -import org.tmatesoft.hg.repo.HgManifest.Flags; import org.tmatesoft.hg.repo.HgRuntimeException; import org.tmatesoft.hg.util.CancelSupport; import org.tmatesoft.hg.util.CancelledException; @@ -70,6 +68,7 @@ badArgs |= rev2 != TIP && rev2 < rev1; // range(3, 1); badArgs |= rev1 == TIP && rev2 != TIP; // range(TIP, 2), although this may be legitimate when TIP points to 2 if (badArgs) { + // TODO [2.0 API break] throw checked HgBadArgumentException instead throw new IllegalArgumentException(String.format("Bad range: [%d, %d]", rev1, rev2)); } startRev = rev1; @@ -83,6 +82,7 @@ * @return <code>this</code> for convenience. */ public HgManifestCommand changeset(int csetRevisionIndex) { + // TODO [2.0 API break] shall throw HgBadArgumentException, like other commands do return range(csetRevisionIndex, csetRevisionIndex); } @@ -95,12 +95,8 @@ */ public HgManifestCommand changeset(Nodeid nid) throws HgBadArgumentException { // XXX also see HgLogCommand#changeset(Nodeid) - try { - final int csetRevIndex = repo.getChangelog().getRevisionIndex(nid); - return range(csetRevIndex, csetRevIndex); - } catch (HgInvalidRevisionException ex) { - throw new HgBadArgumentException("Can't find revision", ex).setRevision(nid); - } + final int csetRevIndex = new CsetParamKeeper(repo).set(nid).get(); + return range(csetRevIndex, csetRevIndex); } public HgManifestCommand dirs(boolean include) {