Mercurial > jhg
comparison src/org/tmatesoft/hg/core/HgStatusCommand.java @ 367:2fadf8695f8a
Use 'revision index' instead of the vague 'local revision number' concept in the API
| author | Artem Tikhomirov <tikhomirov.artem@gmail.com> |
|---|---|
| date | Fri, 16 Dec 2011 15:37:27 +0100 |
| parents | 150500515714 |
| children | 8107b95f4280 |
comparison
equal
deleted
inserted
replaced
| 366:189dc6dc1c3e | 367:2fadf8695f8a |
|---|---|
| 15 * contact TMate Software at support@hg4j.com | 15 * contact TMate Software at support@hg4j.com |
| 16 */ | 16 */ |
| 17 package org.tmatesoft.hg.core; | 17 package org.tmatesoft.hg.core; |
| 18 | 18 |
| 19 import static org.tmatesoft.hg.core.HgStatus.Kind.*; | 19 import static org.tmatesoft.hg.core.HgStatus.Kind.*; |
| 20 import static org.tmatesoft.hg.repo.HgInternals.wrongLocalRevision; | 20 import static org.tmatesoft.hg.repo.HgInternals.wrongRevisionIndex; |
| 21 import static org.tmatesoft.hg.repo.HgRepository.*; | 21 import static org.tmatesoft.hg.repo.HgRepository.*; |
| 22 | 22 |
| 23 import java.io.IOException; | 23 import java.io.IOException; |
| 24 import java.util.ConcurrentModificationException; | 24 import java.util.ConcurrentModificationException; |
| 25 import java.util.concurrent.CancellationException; | 25 import java.util.concurrent.CancellationException; |
| 96 } | 96 } |
| 97 | 97 |
| 98 /** | 98 /** |
| 99 * If set, either base:revision or base:workingdir | 99 * If set, either base:revision or base:workingdir |
| 100 * to unset, pass {@link HgRepository#TIP} or {@link HgRepository#BAD_REVISION} | 100 * to unset, pass {@link HgRepository#TIP} or {@link HgRepository#BAD_REVISION} |
| 101 * @param revision - local revision number to base status from | 101 * @param changesetRevisionIndex - local index of a changeset to base status from |
| 102 * @return <code>this</code> for convenience | 102 * @return <code>this</code> for convenience |
| 103 * @throws IllegalArgumentException when revision is negative or {@link HgRepository#WORKING_COPY} | 103 * @throws IllegalArgumentException when revision is negative or {@link HgRepository#WORKING_COPY} |
| 104 */ | 104 */ |
| 105 public HgStatusCommand base(int revision) { | 105 public HgStatusCommand base(int changesetRevisionIndex) { |
| 106 if (revision == WORKING_COPY || wrongLocalRevision(revision)) { | 106 if (changesetRevisionIndex == WORKING_COPY || wrongRevisionIndex(changesetRevisionIndex)) { |
| 107 throw new IllegalArgumentException(String.valueOf(revision)); | 107 throw new IllegalArgumentException(String.valueOf(changesetRevisionIndex)); |
| 108 } | 108 } |
| 109 if (revision == BAD_REVISION) { | 109 if (changesetRevisionIndex == BAD_REVISION) { |
| 110 revision = TIP; | 110 changesetRevisionIndex = TIP; |
| 111 } | 111 } |
| 112 startRevision = revision; | 112 startRevision = changesetRevisionIndex; |
| 113 return this; | 113 return this; |
| 114 } | 114 } |
| 115 | 115 |
| 116 /** | 116 /** |
| 117 * Revision without base == --change | 117 * Revision without base == --change |
| 118 * Pass {@link HgRepository#WORKING_COPY} or {@link HgRepository#BAD_REVISION} to reset | 118 * Pass {@link HgRepository#WORKING_COPY} or {@link HgRepository#BAD_REVISION} to reset |
| 119 * @param revision - non-negative local revision number, or any of {@link HgRepository#BAD_REVISION}, {@link HgRepository#WORKING_COPY} or {@link HgRepository#TIP} | 119 * @param changesetRevisionIndex - non-negative local revision number, or any of {@link HgRepository#BAD_REVISION}, {@link HgRepository#WORKING_COPY} or {@link HgRepository#TIP} |
| 120 * @return <code>this</code> for convenience | 120 * @return <code>this</code> for convenience |
| 121 * @throws IllegalArgumentException if local revision number doesn't specify legitimate revision. | 121 * @throws IllegalArgumentException if local revision number doesn't specify legitimate revision. |
| 122 */ | 122 */ |
| 123 public HgStatusCommand revision(int revision) { | 123 public HgStatusCommand revision(int changesetRevisionIndex) { |
| 124 if (revision == BAD_REVISION) { | 124 if (changesetRevisionIndex == BAD_REVISION) { |
| 125 revision = WORKING_COPY; | 125 changesetRevisionIndex = WORKING_COPY; |
| 126 } | 126 } |
| 127 if (wrongLocalRevision(revision)) { | 127 if (wrongRevisionIndex(changesetRevisionIndex)) { |
| 128 throw new IllegalArgumentException(String.valueOf(revision)); | 128 throw new IllegalArgumentException(String.valueOf(changesetRevisionIndex)); |
| 129 } | 129 } |
| 130 endRevision = revision; | 130 endRevision = changesetRevisionIndex; |
| 131 return this; | 131 return this; |
| 132 } | 132 } |
| 133 | 133 |
| 134 /** | 134 /** |
| 135 * Shorthand for {@link #base(int) cmd.base(BAD_REVISION)}{@link #change(int) .revision(revision)} | 135 * Shorthand for {@link #base(int) cmd.base(BAD_REVISION)}{@link #change(int) .revision(revision)} |
| 192 } | 192 } |
| 193 } catch (HgCallbackTargetException.Wrap ex) { | 193 } catch (HgCallbackTargetException.Wrap ex) { |
| 194 // seems too general to catch RuntimeException, i.e. | 194 // seems too general to catch RuntimeException, i.e. |
| 195 // unless catch is for very narrow piece of code, it's better not to catch any RTE (which may happen elsewhere, not only in handler) | 195 // unless catch is for very narrow piece of code, it's better not to catch any RTE (which may happen elsewhere, not only in handler) |
| 196 // XXX Perhaps, need more detailed explanation in handlers that are expected to throw Wrap/RTE (i.e. HgChangesetHandler) | 196 // XXX Perhaps, need more detailed explanation in handlers that are expected to throw Wrap/RTE (i.e. HgChangesetHandler) |
| 197 throw new HgCallbackTargetException(ex).setRevisionNumber(endRevision); | 197 throw new HgCallbackTargetException(ex).setRevisionIndex(endRevision); |
| 198 } finally { | 198 } finally { |
| 199 mediator.done(); | 199 mediator.done(); |
| 200 } | 200 } |
| 201 } | 201 } |
| 202 | 202 |
