Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgOutgoingCommand.java @ 366:189dc6dc1c3e
Use exceptions to expose errors reading mercurial data
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 16 Dec 2011 04:43:18 +0100 |
| parents | 5f9073eabf06 |
| children | 9517df1ef7ec |
comparison
equal
deleted
inserted
replaced
| 365:3572fcb06473 | 366:189dc6dc1c3e |
|---|---|
| 91 /** | 91 /** |
| 92 * Lightweight check for outgoing changes. | 92 * Lightweight check for outgoing changes. |
| 93 * Reported changes are from any branch (limits set by {@link #branch(String)} are not taken into account. | 93 * Reported changes are from any branch (limits set by {@link #branch(String)} are not taken into account. |
| 94 * | 94 * |
| 95 * @return list on local nodes known to be missing at remote server | 95 * @return list on local nodes known to be missing at remote server |
| 96 * @throws HgRemoteConnectionException FIXME | |
| 97 * @throws HgInvalidControlFileException FIXME | |
| 98 * @throws CancelledException FIXME | |
| 96 */ | 99 */ |
| 97 public List<Nodeid> executeLite() throws HgRemoteConnectionException, CancelledException { | 100 public List<Nodeid> executeLite() throws HgRemoteConnectionException, HgInvalidControlFileException, CancelledException { |
| 98 final ProgressSupport ps = getProgressSupport(null); | 101 final ProgressSupport ps = getProgressSupport(null); |
| 99 try { | 102 try { |
| 100 ps.start(10); | 103 ps.start(10); |
| 101 return getComparator(new ProgressSupport.Sub(ps, 5), getCancelSupport(null, true)).getLocalOnlyRevisions(); | 104 return getComparator(new ProgressSupport.Sub(ps, 5), getCancelSupport(null, true)).getLocalOnlyRevisions(); |
| 102 } finally { | 105 } finally { |
| 124 } finally { | 127 } finally { |
| 125 ps.done(); | 128 ps.done(); |
| 126 } | 129 } |
| 127 } | 130 } |
| 128 | 131 |
| 129 private RepositoryComparator getComparator(ProgressSupport ps, CancelSupport cs) throws HgRemoteConnectionException, CancelledException { | 132 private RepositoryComparator getComparator(ProgressSupport ps, CancelSupport cs) throws HgRemoteConnectionException, HgInvalidControlFileException, CancelledException { |
| 130 if (remoteRepo == null) { | 133 if (remoteRepo == null) { |
| 131 throw new IllegalArgumentException("Shall specify remote repository to compare against"); | 134 throw new IllegalArgumentException("Shall specify remote repository to compare against"); |
| 132 } | 135 } |
| 133 if (comparator == null) { | 136 if (comparator == null) { |
| 134 comparator = new RepositoryComparator(getParentHelper(), remoteRepo); | 137 comparator = new RepositoryComparator(getParentHelper(), remoteRepo); |
| 135 comparator.compare(ps, cs); | 138 comparator.compare(ps, cs); |
| 136 } | 139 } |
| 137 return comparator; | 140 return comparator; |
| 138 } | 141 } |
| 139 | 142 |
| 140 private HgChangelog.ParentWalker getParentHelper() { | 143 private HgChangelog.ParentWalker getParentHelper() throws HgInvalidControlFileException { |
| 141 if (parentHelper == null) { | 144 if (parentHelper == null) { |
| 142 parentHelper = localRepo.getChangelog().new ParentWalker(); | 145 parentHelper = localRepo.getChangelog().new ParentWalker(); |
| 143 parentHelper.init(); | 146 parentHelper.init(); |
| 144 } | 147 } |
| 145 return parentHelper; | 148 return parentHelper; |
