diff options
Diffstat (limited to 'org.eclipse.jgit/src/org/eclipse')
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java | 12 | ||||
-rw-r--r-- | org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java | 13 |
2 files changed, 24 insertions, 1 deletions
diff --git a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java index ae73cacbe0..936f5cab8d 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseCommand.java @@ -220,9 +220,19 @@ public class RebaseCommand extends GitCommand<RebaseResult> { if (monitor.isCancelled()) return abort(RebaseResult.ABORTED_RESULT); - if (operation == Operation.CONTINUE) + if (operation == Operation.CONTINUE) { newHead = continueRebase(); + if (newHead == null) { + // continueRebase() returns null only if no commit was + // neccessary. This means that no changes where left over + // after resolving all conflicts. In this case, cgit stops + // and displays a nice message to the user, telling him to + // either do changes or skip the commit instead of continue. + return RebaseResult.NOTHING_TO_COMMIT_RESULT; + } + } + if (operation == Operation.SKIP) newHead = checkoutCurrentHead(); 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 e389d9902a..4739f16172 100644 --- a/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java +++ b/org.eclipse.jgit/src/org/eclipse/jgit/api/RebaseResult.java @@ -109,6 +109,16 @@ public class RebaseResult { public boolean isSuccessful() { return true; } + }, + + /** + * Continue with nothing left to commit (possibly want skip). + */ + NOTHING_TO_COMMIT { + @Override + public boolean isSuccessful() { + return false; + } }; /** @@ -127,6 +137,9 @@ public class RebaseResult { static final RebaseResult FAST_FORWARD_RESULT = new RebaseResult( Status.FAST_FORWARD); + static final RebaseResult NOTHING_TO_COMMIT_RESULT = new RebaseResult( + Status.NOTHING_TO_COMMIT); + private final Status status; private final RevCommit currentCommit; |