Package org.eclipse.jgit.api
Class FetchCommand
- java.lang.Object
-
- org.eclipse.jgit.api.GitCommand<T>
-
- org.eclipse.jgit.api.TransportCommand<FetchCommand,FetchResult>
-
- org.eclipse.jgit.api.FetchCommand
-
- All Implemented Interfaces:
java.util.concurrent.Callable<FetchResult>
public class FetchCommand extends TransportCommand<FetchCommand,FetchResult>
A class used to execute aFetch
command. It has setters for all supported options and arguments of this command and acall()
method to finally execute the command.- See Also:
- Git documentation about Fetch
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
FetchCommand.Callback
Callback for status of fetch operation.
-
Field Summary
Fields Modifier and Type Field Description private FetchCommand.Callback
callback
private boolean
checkFetchedObjects
private boolean
dryRun
private java.lang.String
initialBranch
private boolean
isForceUpdate
private ProgressMonitor
monitor
private java.util.List<RefSpec>
refSpecs
private java.lang.String
remote
private java.lang.Boolean
removeDeletedRefs
private SubmoduleConfig.FetchRecurseSubmodulesMode
submoduleRecurseMode
private TagOpt
tagOption
private boolean
thin
-
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
FetchCommand(Repository repo)
Constructor for FetchCommand.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description private java.util.List<RefSpec>
applyOptions(java.util.List<RefSpec> refSpecs2)
FetchResult
call()
private void
fetchSubmodules(FetchResult results)
ProgressMonitor
getProgressMonitor()
Get progress monitorprivate SubmoduleConfig.FetchRecurseSubmodulesMode
getRecurseMode(java.lang.String path)
java.util.List<RefSpec>
getRefSpecs()
Get list ofRefSpec
sjava.lang.String
getRemote()
Get the remoteint
getTimeout()
Get timeoutboolean
isCheckFetchedObjects()
Whether to check received objects for validityboolean
isDryRun()
Whether to do a dry runboolean
isForceUpdate()
Whether fetch --force option is enabledboolean
isRemoveDeletedRefs()
Whether to remove refs which no longer exist in the sourceboolean
isThin()
Get thin-pack preferenceFetchCommand
setCallback(FetchCommand.Callback callback)
Register a progress callback.FetchCommand
setCheckFetchedObjects(boolean checkFetchedObjects)
If set totrue
, objects received will be checked for validityFetchCommand
setDryRun(boolean dryRun)
Sets whether the fetch operation should be a dry runFetchCommand
setForceUpdate(boolean force)
Set fetch --force optionFetchCommand
setInitialBranch(java.lang.String branch)
Set the initial branchFetchCommand
setProgressMonitor(ProgressMonitor monitor)
The progress monitor associated with the fetch operation.FetchCommand
setRecurseSubmodules(SubmoduleConfig.FetchRecurseSubmodulesMode recurse)
Set the mode to be used for recursing into submodules.FetchCommand
setRefSpecs(java.lang.String... specs)
The ref specs to be used in the fetch operationFetchCommand
setRefSpecs(java.util.List<RefSpec> specs)
The ref specs to be used in the fetch operationFetchCommand
setRefSpecs(RefSpec... specs)
The ref specs to be used in the fetch operationFetchCommand
setRemote(java.lang.String remote)
The remote (uri or name) used for the fetch operation.FetchCommand
setRemoveDeletedRefs(boolean removeDeletedRefs)
If set totrue
, refs are removed which no longer exist in the sourceFetchCommand
setTagOpt(TagOpt tagOpt)
Sets the specification of annotated tag behavior during fetchFetchCommand
setThin(boolean thin)
Sets the thin-pack preference for fetch operation.-
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
-
-
-
-
Field Detail
-
remote
private java.lang.String remote
-
refSpecs
private java.util.List<RefSpec> refSpecs
-
monitor
private ProgressMonitor monitor
-
checkFetchedObjects
private boolean checkFetchedObjects
-
removeDeletedRefs
private java.lang.Boolean removeDeletedRefs
-
dryRun
private boolean dryRun
-
thin
private boolean thin
-
tagOption
private TagOpt tagOption
-
submoduleRecurseMode
private SubmoduleConfig.FetchRecurseSubmodulesMode submoduleRecurseMode
-
callback
private FetchCommand.Callback callback
-
isForceUpdate
private boolean isForceUpdate
-
initialBranch
private java.lang.String initialBranch
-
-
Constructor Detail
-
FetchCommand
protected FetchCommand(Repository repo)
Constructor for FetchCommand.- Parameters:
repo
- aRepository
object.
-
-
Method Detail
-
getRecurseMode
private SubmoduleConfig.FetchRecurseSubmodulesMode getRecurseMode(java.lang.String path)
-
fetchSubmodules
private void fetchSubmodules(FetchResult results) throws TransportException, GitAPIException, InvalidConfigurationException
-
call
public FetchResult call() throws GitAPIException, InvalidRemoteException, TransportException
Execute the command
Execute the
fetch
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 (means: one call tocall()
)- Specified by:
call
in interfacejava.util.concurrent.Callable<FetchResult>
- Specified by:
call
in classGitCommand<FetchResult>
- Throws:
GitAPIException
InvalidRemoteException
TransportException
-
setRecurseSubmodules
public FetchCommand setRecurseSubmodules(@Nullable SubmoduleConfig.FetchRecurseSubmodulesMode recurse)
Set the mode to be used for recursing into submodules.- Parameters:
recurse
- corresponds to the --recurse-submodules/--no-recurse-submodules options. Ifnull
use the value of thesubmodule.name.fetchRecurseSubmodules
option configured per submodule. If not specified there, use the value of thefetch.recurseSubmodules
option configured in git config. If not configured in either, "on-demand" is the built-in default.- Returns:
this
- Since:
- 4.7
-
setRemote
public FetchCommand setRemote(java.lang.String remote)
The remote (uri or name) used for the fetch operation. If no remote is set, the default value ofConstants.DEFAULT_REMOTE_NAME
will be used.- Parameters:
remote
- name of a remote- Returns:
this
- See Also:
Constants.DEFAULT_REMOTE_NAME
-
getRemote
public java.lang.String getRemote()
Get the remote- Returns:
- the remote used for the remote operation
-
getTimeout
public int getTimeout()
Get timeout- Returns:
- the timeout used for the fetch operation
-
isCheckFetchedObjects
public boolean isCheckFetchedObjects()
Whether to check received objects for validity- Returns:
- whether to check received objects for validity
-
setCheckFetchedObjects
public FetchCommand setCheckFetchedObjects(boolean checkFetchedObjects)
If set totrue
, objects received will be checked for validity- Parameters:
checkFetchedObjects
- whether to check objects for validity- Returns:
this
-
isRemoveDeletedRefs
public boolean isRemoveDeletedRefs()
Whether to remove refs which no longer exist in the source- Returns:
- whether to remove refs which no longer exist in the source
-
setRemoveDeletedRefs
public FetchCommand setRemoveDeletedRefs(boolean removeDeletedRefs)
If set totrue
, refs are removed which no longer exist in the source- Parameters:
removeDeletedRefs
- whether to remove deletedRef
s- Returns:
this
-
getProgressMonitor
public ProgressMonitor getProgressMonitor()
Get progress monitor- Returns:
- the progress monitor for the fetch operation
-
setProgressMonitor
public FetchCommand setProgressMonitor(ProgressMonitor monitor)
The progress monitor associated with the fetch operation. By default, this is set toNullProgressMonitor
- Parameters:
monitor
- aProgressMonitor
- Returns:
this
- See Also:
NullProgressMonitor
-
getRefSpecs
public java.util.List<RefSpec> getRefSpecs()
Get list ofRefSpec
s- Returns:
- the ref specs
-
setRefSpecs
public FetchCommand setRefSpecs(java.lang.String... specs)
The ref specs to be used in the fetch operation- Parameters:
specs
- String representation ofRefSpec
s- Returns:
this
- Since:
- 4.9
-
setRefSpecs
public FetchCommand setRefSpecs(RefSpec... specs)
The ref specs to be used in the fetch operation- Parameters:
specs
- one or multipleRefSpec
s- Returns:
this
-
setRefSpecs
public FetchCommand setRefSpecs(java.util.List<RefSpec> specs)
The ref specs to be used in the fetch operation- Parameters:
specs
- list ofRefSpec
s- Returns:
this
-
isDryRun
public boolean isDryRun()
Whether to do a dry run- Returns:
- the dry run preference for the fetch operation
-
setDryRun
public FetchCommand setDryRun(boolean dryRun)
Sets whether the fetch operation should be a dry run- Parameters:
dryRun
- whether to do a dry run- Returns:
this
-
isThin
public boolean isThin()
Get thin-pack preference- Returns:
- the thin-pack preference for fetch operation
-
setThin
public FetchCommand setThin(boolean thin)
Sets the thin-pack preference for fetch operation. Default setting is Transport.DEFAULT_FETCH_THIN- Parameters:
thin
- the thin-pack preference- Returns:
this
-
setTagOpt
public FetchCommand setTagOpt(TagOpt tagOpt)
Sets the specification of annotated tag behavior during fetch- Parameters:
tagOpt
- theTagOpt
- Returns:
this
-
setInitialBranch
public FetchCommand setInitialBranch(java.lang.String branch)
Set the initial branch- Parameters:
branch
- the initial branch to check out when cloning the repository. Can be specified as ref name (refs/heads/master
), branch name (master
) or tag name (v1.2.3
). The default is to use the branch pointed to by the cloned repository's HEAD and can be requested by passingnull
orHEAD
.- Returns:
this
- Since:
- 5.11
-
setCallback
public FetchCommand setCallback(FetchCommand.Callback callback)
Register a progress callback.- Parameters:
callback
- the callback- Returns:
this
- Since:
- 4.8
-
isForceUpdate
public boolean isForceUpdate()
Whether fetch --force option is enabled- Returns:
- whether refs affected by the fetch are updated forcefully
- Since:
- 5.0
-
setForceUpdate
public FetchCommand setForceUpdate(boolean force)
Set fetch --force option- Parameters:
force
- whether to update refs affected by the fetch forcefully- Returns:
- this command
- Since:
- 5.0
-
-