Class PullCommand
- java.lang.Object
-
- org.eclipse.jgit.api.GitCommand<T>
-
- org.eclipse.jgit.api.TransportCommand<PullCommand,PullResult>
-
- org.eclipse.jgit.api.PullCommand
-
- All Implemented Interfaces:
Callable<PullResult>
public class PullCommand extends TransportCommand<PullCommand,PullResult>
The Pull command- See Also:
- Git documentation about Pull
-
-
Field Summary
-
Fields inherited from class org.eclipse.jgit.api.TransportCommand
credentialsProvider, timeout, transportConfigCallback
-
Fields inherited from class org.eclipse.jgit.api.GitCommand
repo
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
PullCommand(Repository repo)
Constructor for PullCommand.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description PullResult
call()
static BranchConfig.BranchRebaseMode
getRebaseMode(String branchName, Config config)
Reads the rebase mode to use for a pull command from the repository configuration.String
getRemote()
Get the remote name used for pull operationString
getRemoteBranchName()
Get the remote branch name for the pull operationPullCommand
setContentMergeStrategy(ContentMergeStrategy strategy)
Sets the content merge strategy to use if themerge strategy
is "resolve" or "recursive".PullCommand
setFastForward(MergeCommand.FastForwardMode fastForwardMode)
Set the fast forward mode.PullCommand
setProgressMonitor(ProgressMonitor monitor)
Set progress monitorPullCommand
setRebase(boolean useRebase)
Set if rebase should be used after fetching.PullCommand
setRebase(BranchConfig.BranchRebaseMode rebaseMode)
Sets theBranchConfig.BranchRebaseMode
to use after fetching.PullCommand
setRecurseSubmodules(SubmoduleConfig.FetchRecurseSubmodulesMode recurse)
Set the mode to be used for recursing into submodules.PullCommand
setRemote(String remote)
The remote (uri or name) to be used for the pull operation.PullCommand
setRemoteBranchName(String remoteBranchName)
The remote branch name to be used for the pull operation.PullCommand
setStrategy(MergeStrategy strategy)
Set the @{code MergeStrategy}PullCommand
setTagOpt(TagOpt tagOpt)
Set the specification of annotated tag behavior during fetch-
Methods inherited from class org.eclipse.jgit.api.TransportCommand
configure, configure, self, setCredentialsProvider, setTimeout, setTransportConfigCallback
-
Methods inherited from class org.eclipse.jgit.api.GitCommand
checkCallable, getRepository, setCallable
-
-
-
-
Constructor Detail
-
PullCommand
protected PullCommand(Repository repo)
Constructor for PullCommand.- Parameters:
repo
- theRepository
-
-
Method Detail
-
setProgressMonitor
public PullCommand setProgressMonitor(ProgressMonitor monitor)
Set progress monitor- Parameters:
monitor
- a progress monitor- Returns:
- this instance
-
setRebase
public PullCommand setRebase(boolean useRebase)
Set if rebase should be used after fetching. If set to true, rebase is used instead of merge. This is equivalent to --rebase on the command line.If set to false, merge is used after fetching, overriding the configuration file. This is equivalent to --no-rebase on the command line.
This setting overrides the settings in the configuration file. By default, the setting in the repository configuration file is used.
A branch can be configured to use rebase by default. See branch.[name].rebase and branch.autosetuprebase.
- Parameters:
useRebase
- whether to use rebase after fetching- Returns:
this
-
setRebase
public PullCommand setRebase(BranchConfig.BranchRebaseMode rebaseMode)
Sets theBranchConfig.BranchRebaseMode
to use after fetching.- BranchRebaseMode.REBASE
- Equivalent to
--rebase
on the command line: use rebase instead of merge after fetching. - BranchRebaseMode.PRESERVE
- Equivalent to
--preserve-merges
on the command line: rebase preserving local merge commits. - BranchRebaseMode.INTERACTIVE
- Equivalent to
--interactive
on the command line: use interactive rebase. - BranchRebaseMode.NONE
- Equivalent to
--no-rebase
: merge instead of rebasing. null
- Use the setting defined in the git configuration, either
branch.[name].rebase
or, if not set,pull.rebase
A branch can be configured to use rebase by default. See
branch.[name].rebase
,branch.autosetuprebase
, andpull.rebase
.- Parameters:
rebaseMode
- theBranchConfig.BranchRebaseMode
to use- Returns:
this
- Since:
- 4.5
-
call
public PullResult call() throws GitAPIException, WrongRepositoryStateException, InvalidConfigurationException, InvalidRemoteException, CanceledException, RefNotFoundException, RefNotAdvertisedException, NoHeadException, TransportException
Execute the command
Execute the
Pull
command with all the options and parameters collected by the setter methods (e.g.setProgressMonitor(ProgressMonitor)
) 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<PullResult>
- Specified by:
call
in classGitCommand<PullResult>
- Throws:
GitAPIException
WrongRepositoryStateException
InvalidConfigurationException
InvalidRemoteException
CanceledException
RefNotFoundException
RefNotAdvertisedException
NoHeadException
TransportException
-
setRemote
public PullCommand setRemote(String remote)
The remote (uri or name) to be used for the pull operation. If no remote is set, the branch's configuration will be used. If the branch configuration is missing the default value ofConstants.DEFAULT_REMOTE_NAME
will be used.- Parameters:
remote
- name of the remote to pull from- Returns:
this
- Since:
- 3.3
- See Also:
Constants.DEFAULT_REMOTE_NAME
-
setRemoteBranchName
public PullCommand setRemoteBranchName(String remoteBranchName)
The remote branch name to be used for the pull operation. If no remoteBranchName is set, the branch's configuration will be used. If the branch configuration is missing the remote branch with the same name as the current branch is used.- Parameters:
remoteBranchName
- remote branch name to be used for pull operation- Returns:
this
- Since:
- 3.3
-
getRemote
public String getRemote()
Get the remote name used for pull operation- Returns:
- the remote used for the pull operation if it was set explicitly
- Since:
- 3.3
-
getRemoteBranchName
public String getRemoteBranchName()
Get the remote branch name for the pull operation- Returns:
- the remote branch name used for the pull operation if it was set explicitly
- Since:
- 3.3
-
setStrategy
public PullCommand setStrategy(MergeStrategy strategy)
Set the @{code MergeStrategy}- Parameters:
strategy
- The merge strategy to use during this pull operation.- Returns:
this
- Since:
- 3.4
-
setContentMergeStrategy
public PullCommand 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
-
setTagOpt
public PullCommand setTagOpt(TagOpt tagOpt)
Set the specification of annotated tag behavior during fetch- Parameters:
tagOpt
- theTagOpt
- Returns:
this
- Since:
- 4.7
-
setFastForward
public PullCommand setFastForward(@Nullable MergeCommand.FastForwardMode fastForwardMode)
Set the fast forward mode. It is used if pull is configured to do a merge as opposed to rebase. If non-null
takes precedence over the fast-forward mode configured in git config.- Parameters:
fastForwardMode
- corresponds to the --ff/--no-ff/--ff-only options. Ifnull
use the value ofpull.ff
configured in git config. Ifpull.ff
is not configured fall back to the value ofmerge.ff
. Ifmerge.ff
is not configured --ff is the built-in default.- Returns:
this
- Since:
- 4.9
-
setRecurseSubmodules
public PullCommand setRecurseSubmodules(@Nullable SubmoduleConfig.FetchRecurseSubmodulesMode recurse)
Set the mode to be used for recursing into submodules.- Parameters:
recurse
- theSubmoduleConfig.FetchRecurseSubmodulesMode
to be used for recursing into submodules- Returns:
this
- Since:
- 4.7
- See Also:
FetchCommand.setRecurseSubmodules(FetchRecurseSubmodulesMode)
-
getRebaseMode
public static BranchConfig.BranchRebaseMode getRebaseMode(String branchName, Config config)
Reads the rebase mode to use for a pull command from the repository configuration. This is the value defined for the configurationsbranch.[branchName].rebase
, or,if not set,pull.rebase
. If neither is set, yieldsBranchConfig.BranchRebaseMode.NONE
.- Parameters:
branchName
- name of the local branchconfig
- theConfig
to read the value from- Returns:
- the
BranchConfig.BranchRebaseMode
- Since:
- 4.5
-
-