comparison cmdline/org/tmatesoft/hg/console/ChangesetDumpHandler.java @ 628:6526d8adbc0f

Explicit HgRuntimeException to facilitate easy switch from runtime to checked exceptions
author Artem Tikhomirov <tikhomirov.artem@gmail.com>
date Wed, 22 May 2013 15:52:31 +0200
parents 37d97854c6ad
children
comparison
equal deleted inserted replaced
627:5153eb73b18d 628:6526d8adbc0f
1 /* 1 /*
2 * Copyright (c) 2011-2012 TMate Software Ltd 2 * Copyright (c) 2011-2013 TMate Software Ltd
3 * 3 *
4 * This program is free software; you can redistribute it and/or modify 4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License as published by 5 * it under the terms of the GNU General Public License as published by
6 * the Free Software Foundation; version 2 of the License. 6 * the Free Software Foundation; version 2 of the License.
7 * 7 *
24 import org.tmatesoft.hg.core.HgChangesetHandler; 24 import org.tmatesoft.hg.core.HgChangesetHandler;
25 import org.tmatesoft.hg.core.HgException; 25 import org.tmatesoft.hg.core.HgException;
26 import org.tmatesoft.hg.core.HgFileRevision; 26 import org.tmatesoft.hg.core.HgFileRevision;
27 import org.tmatesoft.hg.core.Nodeid; 27 import org.tmatesoft.hg.core.Nodeid;
28 import org.tmatesoft.hg.repo.HgRepository; 28 import org.tmatesoft.hg.repo.HgRepository;
29 import org.tmatesoft.hg.repo.HgRuntimeException;
29 import org.tmatesoft.hg.util.Path; 30 import org.tmatesoft.hg.util.Path;
30 31
31 /** 32 /**
32 * 33 *
33 * @author Artem Tikhomirov 34 * @author Artem Tikhomirov
41 // own 42 // own
42 private LinkedList<String> l = new LinkedList<String>(); 43 private LinkedList<String> l = new LinkedList<String>();
43 private final HgRepository repo; 44 private final HgRepository repo;
44 private final int tip; 45 private final int tip;
45 46
46 public ChangesetDumpHandler(HgRepository hgRepo) { 47 public ChangesetDumpHandler(HgRepository hgRepo) throws HgRuntimeException {
47 repo = hgRepo; 48 repo = hgRepo;
48 tip = hgRepo.getChangelog().getLastRevision(); 49 tip = hgRepo.getChangelog().getLastRevision();
49 } 50 }
50 51
51 public ChangesetDumpHandler complete(boolean b) { 52 public ChangesetDumpHandler complete(boolean b) {
61 public ChangesetDumpHandler verbose(boolean b) { 62 public ChangesetDumpHandler verbose(boolean b) {
62 verbose = b; 63 verbose = b;
63 return this; 64 return this;
64 } 65 }
65 66
66 public void cset(HgChangeset changeset) { 67 public void cset(HgChangeset changeset) throws HgRuntimeException {
67 try { 68 try {
68 final String s = print(changeset); 69 final String s = print(changeset);
69 if (reverseOrder) { 70 if (reverseOrder) {
70 // XXX in fact, need to insert s into l according to changeset.getRevision() 71 // XXX in fact, need to insert s into l according to changeset.getRevision()
71 // because when file history is being followed, revisions of the original file (with smaller revNumber) 72 // because when file history is being followed, revisions of the original file (with smaller revNumber)
87 System.out.print(s); 88 System.out.print(s);
88 } 89 }
89 l.clear(); 90 l.clear();
90 } 91 }
91 92
92 private String print(HgChangeset cset) throws HgException { 93 private String print(HgChangeset cset) throws HgException, HgRuntimeException {
93 StringBuilder sb = new StringBuilder(); 94 StringBuilder sb = new StringBuilder();
94 Formatter f = new Formatter(sb); 95 Formatter f = new Formatter(sb);
95 final Nodeid csetNodeid = cset.getNodeid(); 96 final Nodeid csetNodeid = cset.getNodeid();
96 f.format("changeset: %d:%s\n", cset.getRevisionIndex(), complete ? csetNodeid : csetNodeid.shortNotation()); 97 f.format("changeset: %d:%s\n", cset.getRevisionIndex(), complete ? csetNodeid : csetNodeid.shortNotation());
97 if (cset.getRevisionIndex() == tip || repo.getTags().isTagged(csetNodeid)) { 98 if (cset.getRevisionIndex() == tip || repo.getTags().isTagged(csetNodeid)) {