diff options
3 files changed, 88 insertions, 7 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeResult.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeResult.java index 1ec8685f7e..86e4e78c8c 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeResult.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/MergeResult.java @@ -70,37 +70,72 @@ public class MergeResult { public String toString() { return "Fast-forward"; } + + @Override + public boolean isSuccessful() { + return true; + } }, /** */ ALREADY_UP_TO_DATE { public String toString() { return "Already-up-to-date"; } + + @Override + public boolean isSuccessful() { + return true; + } }, /** */ FAILED { public String toString() { return "Failed"; } + + @Override + public boolean isSuccessful() { + return false; + } }, /** */ MERGED { public String toString() { return "Merged"; } + + @Override + public boolean isSuccessful() { + return true; + } }, /** */ CONFLICTING { public String toString() { return "Conflicting"; } + + @Override + public boolean isSuccessful() { + return false; + } }, /** */ NOT_SUPPORTED { public String toString() { return "Not-yet-supported"; } - } + + @Override + public boolean isSuccessful() { + return false; + } + }; + + /** + * @return whether the status indicates a successful result + */ + public abstract boolean isSuccessful(); } private ObjectId[] mergedCommits; diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullResult.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullResult.java index 40ed137ee0..49327fc9b9 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/PullResult.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/PullResult.java @@ -101,6 +101,17 @@ public class PullResult { return this.fetchedFrom; } + /** + * @return whether the pull was successful + */ + public boolean isSuccessful() { + if (mergeResult != null) + return mergeResult.getMergeStatus().isSuccessful(); + else if (rebaseResult != null) + return rebaseResult.getStatus().isSuccessful(); + return true; + } + @Override public String toString() { StringBuilder sb = new StringBuilder(); diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java index af070d6535..07cd8eb20a 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java @@ -59,27 +59,62 @@ public class RebaseResult { /** * Rebase was successful, HEAD points to the new commit */ - OK, + OK { + @Override + public boolean isSuccessful() { + return true; + } + }, /** * Aborted; the original HEAD was restored */ - ABORTED, + ABORTED { + @Override + public boolean isSuccessful() { + return false; + } + }, /** * Stopped due to a conflict; must either abort or resolve or skip */ - STOPPED, + STOPPED { + @Override + public boolean isSuccessful() { + return false; + } + }, /** * Failed; the original HEAD was restored */ - FAILED, + FAILED { + @Override + public boolean isSuccessful() { + return false; + } + }, /** * Already up-to-date */ - UP_TO_DATE, + UP_TO_DATE { + @Override + public boolean isSuccessful() { + return true; + } + }, /** * Fast-forward, HEAD points to the new commit */ - FAST_FORWARD; + FAST_FORWARD { + @Override + public boolean isSuccessful() { + return true; + } + }; + + /** + * @return whether the status indicates a successful result + */ + public abstract boolean isSuccessful(); } static final RebaseResult OK_RESULT = new RebaseResult(Status.OK); |