Mercurial > hg4j
diff cmdline/org/tmatesoft/hg/console/Log.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 | 3a7696fb457c |
line wrap: on
line diff
--- a/cmdline/org/tmatesoft/hg/console/Log.java Thu Feb 17 05:06:07 2011 +0100 +++ b/cmdline/org/tmatesoft/hg/console/Log.java Thu Feb 17 22:16:25 2011 +0100 @@ -42,35 +42,31 @@ System.err.printf("Can't find repository in: %s\n", hgRepo.getLocation()); return; } - System.out.println(hgRepo.getLocation()); final Dump dump = new Dump(hgRepo); - dump.complete = true; //cmdLineOpts; - dump.verbose = false; //cmdLineOpts; + dump.complete = cmdLineOpts.getBoolean("--debug"); + dump.verbose = cmdLineOpts.getBoolean("-v", "--verbose"); dump.reverseOrder = true; HgLogCommand cmd = new HgLogCommand(hgRepo); - if (cmdLineOpts.users != null) { - for (String u : cmdLineOpts.users) { - cmd.user(u); - } + for (String u : cmdLineOpts.getList("-u", "--user")) { + cmd.user(u); } - if (cmdLineOpts.branches != null) { - for (String b : cmdLineOpts.branches) { - cmd.branch(b); - } + for (String b : cmdLineOpts.getList("-b", "--branches")) { + cmd.branch(b); } - if (cmdLineOpts.limit != -1) { - cmd.limit(cmdLineOpts.limit); - + int limit = cmdLineOpts.getSingleInt(-1, "-l", "--limit"); + if (limit != -1) { + cmd.limit(limit); } - if (cmdLineOpts.files.isEmpty()) { - if (cmdLineOpts.limit == -1) { + List<String> files = cmdLineOpts.getList(""); + if (files.isEmpty()) { + if (limit == -1) { // no revisions and no limit cmd.execute(dump); } else { // in fact, external (to dump inspector) --limit processing yelds incorrect results when other args // e.g. -u or -b are used (i.e. with -u shall give <limit> csets with user, not check last <limit> csets for user int[] r = new int[] { 0, hgRepo.getChangelog().getRevisionCount() }; - if (fixRange(r, dump.reverseOrder, cmdLineOpts.limit) == 0) { + if (fixRange(r, dump.reverseOrder, limit) == 0) { System.out.println("No changes"); return; } @@ -78,14 +74,14 @@ } dump.complete(); } else { - for (String fname : cmdLineOpts.files) { + for (String fname : files) { HgDataFile f1 = hgRepo.getFileNode(fname); System.out.println("History of the file: " + f1.getPath()); - if (cmdLineOpts.limit == -1) { + if (limit == -1) { cmd.file(f1.getPath(), true).execute(dump); } else { int[] r = new int[] { 0, f1.getRevisionCount() }; - if (fixRange(r, dump.reverseOrder, cmdLineOpts.limit) == 0) { + if (fixRange(r, dump.reverseOrder, limit) == 0) { System.out.println("No changes"); continue; }