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:
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 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 FetchCommand
addShallowExclude(String shallowExclude)
Deepens or shortens the history of a shallow repository to exclude commits reachable from a specified remote branch or tag.FetchCommand
addShallowExclude(ObjectId shallowExclude)
Creates a shallow clone with a history, excluding commits reachable from a specified remote branch or tag.FetchResult
call()
ProgressMonitor
getProgressMonitor()
Get progress monitorList<RefSpec>
getRefSpecs()
Get list ofRefSpec
sString
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
setDepth(int depth)
Limits fetching to the specified number of commits from the tip of each remote branch history.FetchCommand
setDryRun(boolean dryRun)
Sets whether the fetch operation should be a dry runFetchCommand
setForceUpdate(boolean force)
Set fetch --force optionFetchCommand
setInitialBranch(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(String... specs)
The ref specs to be used in the fetch operationFetchCommand
setRefSpecs(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(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
setShallowSince(Instant shallowSince)
Deepens or shortens the history of a shallow repository to include all reachable commits after a specified time.FetchCommand
setShallowSince(OffsetDateTime shallowSince)
Deepens or shortens the history of a shallow repository to include all reachable commits after a specified time.FetchCommand
setTagOpt(TagOpt tagOpt)
Sets the specification of annotated tag behavior during fetchFetchCommand
setThin(boolean thin)
Sets the thin-pack preference for fetch operation.FetchCommand
setUnshallow(boolean unshallow)
If the source repository is complete, converts a shallow repository to a complete one, removing all the limitations imposed by shallow repositories.-
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
-
FetchCommand
protected FetchCommand(Repository repo)
Constructor for FetchCommand.- Parameters:
repo
- aRepository
object.
-
-
Method Detail
-
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 interfaceCallable<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(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 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
-
setRefSpecs
public FetchCommand setRefSpecs(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(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(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
-
setDepth
public FetchCommand setDepth(int depth)
Limits fetching to the specified number of commits from the tip of each remote branch history.- Parameters:
depth
- the depth- Returns:
this
- Since:
- 6.3
-
setShallowSince
public FetchCommand setShallowSince(@NonNull OffsetDateTime shallowSince)
Deepens or shortens the history of a shallow repository to include all reachable commits after a specified time.- Parameters:
shallowSince
- the timestammp; must not benull
- Returns:
this
- Since:
- 6.3
-
setShallowSince
public FetchCommand setShallowSince(@NonNull Instant shallowSince)
Deepens or shortens the history of a shallow repository to include all reachable commits after a specified time.- Parameters:
shallowSince
- the timestammp; must not benull
- Returns:
this
- Since:
- 6.3
-
addShallowExclude
public FetchCommand addShallowExclude(@NonNull String shallowExclude)
Deepens or shortens the history of a shallow repository to exclude commits reachable from a specified remote branch or tag.- Parameters:
shallowExclude
- the ref or commit; must not benull
- Returns:
this
- Since:
- 6.3
-
addShallowExclude
public FetchCommand addShallowExclude(@NonNull ObjectId shallowExclude)
Creates a shallow clone with a history, excluding commits reachable from a specified remote branch or tag.- Parameters:
shallowExclude
- the commit; must not benull
- Returns:
this
- Since:
- 6.3
-
setUnshallow
public FetchCommand setUnshallow(boolean unshallow)
If the source repository is complete, converts a shallow repository to a complete one, removing all the limitations imposed by shallow repositories. If the source repository is shallow, fetches as much as possible so that the current repository has the same history as the source repository.- Parameters:
unshallow
- whether to unshallow or not- Returns:
this
- Since:
- 6.3
-
-