Package org.eclipse.jgit.api
Class RebaseCommand
- java.lang.Object
-
- org.eclipse.jgit.api.GitCommand<RebaseResult>
-
- org.eclipse.jgit.api.RebaseCommand
-
- All Implemented Interfaces:
Callable<RebaseResult>
public class RebaseCommand extends GitCommand<RebaseResult>
A class used to execute aRebase
command. It has setters for all supported options and arguments of this command and acall()
method to finally execute the command. Each instance of this class should only be used for one invocation of the command (means: one call tocall()
)- See Also:
- Git documentation about Rebase
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
RebaseCommand.InteractiveHandler
Allows to configure the interactive rebase process steps and to modify commit messages.static interface
RebaseCommand.InteractiveHandler2
ExtendsRebaseCommand.InteractiveHandler
with an enhanced callback for editing commit messages.static class
RebaseCommand.Operation
The available operations
-
Field Summary
Fields Modifier and Type Field Description static String
REBASE_MERGE
The name of the "rebase-merge" folder for interactive rebases.static String
STOPPED_SHA
The name of the "stopped-sha" file-
Fields inherited from class org.eclipse.jgit.api.GitCommand
repo
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
RebaseCommand(Repository repo)
Constructor for RebaseCommand.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RebaseResult
call()
RebaseCommand
runInteractively(RebaseCommand.InteractiveHandler handler)
Enable interactive rebaseRebaseCommand
runInteractively(RebaseCommand.InteractiveHandler handler, boolean stopAfterRebaseInteractiveInitialization)
Enable interactive rebaseRebaseCommand
setContentMergeStrategy(ContentMergeStrategy strategy)
Sets the content merge strategy to use if themerge strategy
is "resolve" or "recursive".RebaseCommand
setOperation(RebaseCommand.Operation operation)
Set the operation to execute during rebaseRebaseCommand
setPreserveMerges(boolean preserve)
Whether to preserve merges during rebaseRebaseCommand
setProgressMonitor(ProgressMonitor monitor)
Set progress monitorRebaseCommand
setStrategy(MergeStrategy strategy)
Set theMergeStrategy
.RebaseCommand
setUpstream(String upstream)
Set the upstream branchRebaseCommand
setUpstream(AnyObjectId upstream)
Set the upstream commitRebaseCommand
setUpstream(RevCommit upstream)
Set upstreamRevCommit
RebaseCommand
setUpstreamName(String upstreamName)
Optionally override the name of the upstream.RevCommit
tryFastForward(RevCommit newCommit)
Check if we can fast-forward and returns the new head if it is possible-
Methods inherited from class org.eclipse.jgit.api.GitCommand
checkCallable, getRepository, setCallable
-
-
-
-
Field Detail
-
REBASE_MERGE
public static final String REBASE_MERGE
The name of the "rebase-merge" folder for interactive rebases.- See Also:
- Constant Field Values
-
STOPPED_SHA
public static final String STOPPED_SHA
The name of the "stopped-sha" file- See Also:
- Constant Field Values
-
-
Constructor Detail
-
RebaseCommand
protected RebaseCommand(Repository repo)
Constructor for RebaseCommand.
- Parameters:
repo
- theRepository
-
-
Method Detail
-
call
public RebaseResult call() throws GitAPIException, NoHeadException, RefNotFoundException, WrongRepositoryStateException
Execute the command
Executes the
Rebase
command with all the options and parameters collected by the setter methods of this class. Each instance of this class should only be used for one invocation of the command. Don't call this method twice on an instance.- Specified by:
call
in interfaceCallable<RebaseResult>
- Specified by:
call
in classGitCommand<RebaseResult>
- Throws:
GitAPIException
NoHeadException
RefNotFoundException
WrongRepositoryStateException
-
tryFastForward
public RevCommit tryFastForward(RevCommit newCommit) throws IOException, GitAPIException
Check if we can fast-forward and returns the new head if it is possible- Parameters:
newCommit
- aRevCommit
object to check if we can fast-forward to.- Returns:
- the new head, or null
- Throws:
IOException
GitAPIException
-
setUpstream
public RebaseCommand setUpstream(RevCommit upstream)
Set upstreamRevCommit
- Parameters:
upstream
- the upstream commit- Returns:
this
-
setUpstream
public RebaseCommand setUpstream(AnyObjectId upstream)
Set the upstream commit- Parameters:
upstream
- id of the upstream commit- Returns:
this
-
setUpstream
public RebaseCommand setUpstream(String upstream) throws RefNotFoundException
Set the upstream branch- Parameters:
upstream
- the name of the upstream branch- Returns:
this
- Throws:
RefNotFoundException
-
setUpstreamName
public RebaseCommand setUpstreamName(String upstreamName)
Optionally override the name of the upstream. If this is used, it has to come after anysetUpstream(org.eclipse.jgit.revwalk.RevCommit)
call.- Parameters:
upstreamName
- the name which will be used to refer to upstream in conflicts- Returns:
this
-
setOperation
public RebaseCommand setOperation(RebaseCommand.Operation operation)
Set the operation to execute during rebase- Parameters:
operation
- the operation to perform- Returns:
this
-
setProgressMonitor
public RebaseCommand setProgressMonitor(ProgressMonitor monitor)
Set progress monitor- Parameters:
monitor
- a progress monitor- Returns:
- this instance
-
runInteractively
public RebaseCommand runInteractively(RebaseCommand.InteractiveHandler handler)
Enable interactive rebaseDoes not stop after initialization of interactive rebase. This is equivalent to
runInteractively(handler, false)
;- Parameters:
handler
- theRebaseCommand.InteractiveHandler
to use- Returns:
- this
-
runInteractively
public RebaseCommand runInteractively(RebaseCommand.InteractiveHandler handler, boolean stopAfterRebaseInteractiveInitialization)
Enable interactive rebaseIf stopAfterRebaseInteractiveInitialization is
true
the rebase stops after initialization of interactive rebase returningRebaseResult.INTERACTIVE_PREPARED_RESULT
- Parameters:
handler
- theRebaseCommand.InteractiveHandler
to usestopAfterRebaseInteractiveInitialization
- iftrue
the rebase stops after initialization- Returns:
- this instance
- Since:
- 3.2
-
setStrategy
public RebaseCommand setStrategy(MergeStrategy strategy)
Set theMergeStrategy
.- Parameters:
strategy
- The merge strategy to use during this rebase operation.- Returns:
this
- Since:
- 3.4
-
setContentMergeStrategy
public RebaseCommand setContentMergeStrategy(ContentMergeStrategy strategy)
Sets the content merge strategy to use if themerge strategy
is "resolve" or "recursive".- Parameters:
strategy
- theContentMergeStrategy
to be used- Returns:
this
- Since:
- 5.12
-
setPreserveMerges
public RebaseCommand setPreserveMerges(boolean preserve)
Whether to preserve merges during rebase- Parameters:
preserve
-true
to re-create merges during rebase. Defaults tofalse
, a flattening rebase.- Returns:
this
- Since:
- 3.5
-
-