Mercurial > jhg
diff src/org/tmatesoft/hg/core/HgManifestCommand.java @ 143:b9700740553a
Command line tools parse and respect most of command-line arguments
author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
---|---|
date | Thu, 17 Feb 2011 22:16:25 +0100 |
parents | 37a34044e6bd |
children | 1a7a9a20e1f9 |
line wrap: on
line diff
--- a/src/org/tmatesoft/hg/core/HgManifestCommand.java Thu Feb 17 05:06:07 2011 +0100 +++ b/src/org/tmatesoft/hg/core/HgManifestCommand.java Thu Feb 17 22:16:25 2011 +0100 @@ -16,6 +16,8 @@ */ 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; @@ -52,8 +54,16 @@ } public HgManifestCommand range(int rev1, int rev2) { - // if manifest range is different from that of changelog, need conversion utils (external?) - throw HgRepository.notImplemented(); + // XXX if manifest range is different from that of changelog, need conversion utils (external?) + boolean badArgs = rev1 == BAD_REVISION || rev2 == BAD_REVISION || rev1 == WORKING_COPY || rev2 == WORKING_COPY; + 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) { + throw new IllegalArgumentException(String.format("Bad range: [%d, %d]", rev1, rev2)); + } + startRev = rev1; + endRev = rev2; + return this; } public HgManifestCommand revision(int rev) { @@ -78,7 +88,7 @@ return this; } - public void walk(Handler handler) { + public void execute(Handler handler) { if (handler == null) { throw new IllegalArgumentException(); }