/**
* Aborts and resets the current rebase
*/
- ABORT;
+ ABORT,
+ /**
+ * Starts processing steps
+ */
+ PROCESS_STEPS;
}
private Operation operation = Operation.BEGIN;
private InteractiveHandler interactiveHandler;
+ private boolean stopAfterInitialization = false;
+
/**
* @param repo
*/
} catch (IOException ioe) {
throw new JGitInternalException(ioe.getMessage(), ioe);
}
+ case PROCESS_STEPS:
+ // fall through
case SKIP:
// fall through
case CONTINUE:
break;
case BEGIN:
RebaseResult res = initFilesAndRewind();
+ if (stopAfterInitialization)
+ return RebaseResult.INTERACTIVE_PREPARED_RESULT;
if (res != null)
return res;
}
}
private void checkParameters() throws WrongRepositoryStateException {
+ if (this.operation == Operation.PROCESS_STEPS) {
+ if (rebaseState.getFile(DONE).exists())
+ throw new WrongRepositoryStateException(MessageFormat.format(
+ JGitText.get().wrongRepositoryState, repo
+ .getRepositoryState().name()));
+ }
if (this.operation != Operation.BEGIN) {
// these operations are only possible while in a rebasing state
switch (repo.getRepositoryState()) {
/**
* Enables interactive rebase
+ * <p>
+ * Does not stop after initialization of interactive rebase. This is
+ * equivalent to
+ * {@link RebaseCommand#runInteractively(InteractiveHandler, boolean)
+ * runInteractively(handler, false)};
+ * </p>
*
* @param handler
* @return this
*/
public RebaseCommand runInteractively(InteractiveHandler handler) {
+ return runInteractively(handler, false);
+ }
+
+ /**
+ * Enables interactive rebase
+ * <p>
+ * If stopAfterRebaseInteractiveInitialization is {@code true} the rebase
+ * stops after initialization of interactive rebase returning
+ * {@link RebaseResult#INTERACTIVE_PREPARED_RESULT}
+ * </p>
+ *
+ * @param handler
+ * @param stopAfterRebaseInteractiveInitialization
+ * if {@code true} the rebase stops after initialization
+ * @return this instance
+ */
+ public RebaseCommand runInteractively(InteractiveHandler handler,
+ final boolean stopAfterRebaseInteractiveInitialization) {
+ this.stopAfterInitialization = stopAfterRebaseInteractiveInitialization;
this.interactiveHandler = handler;
return this;
}
/*
- * Copyright (C) 2010, Mathias Kinzler <mathias.kinzler@sap.com>
+ * Copyright (C) 2010, 2013, Mathias Kinzler <mathias.kinzler@sap.com>
* and other copyright owners as documented in the project's IP log.
*
* This program and the accompanying materials are made available
public boolean isSuccessful() {
return false;
}
+ },
+
+ /**
+ * Interactive rebase has been prepared
+ */
+ INTERACTIVE_PREPARED {
+ @Override
+ public boolean isSuccessful() {
+ return false;
+ }
};
/**
static final RebaseResult NOTHING_TO_COMMIT_RESULT = new RebaseResult(
Status.NOTHING_TO_COMMIT);
+ static final RebaseResult INTERACTIVE_PREPARED_RESULT = new RebaseResult(
+ Status.INTERACTIVE_PREPARED);
+
private final Status status;
private final RevCommit currentCommit;