Class FetchCommand

All Implemented Interfaces:
Callable<FetchResult>

public class FetchCommand extends TransportCommand<FetchCommand,FetchResult>
A class used to execute a Fetch command. It has setters for all supported options and arguments of this command and a call() method to finally execute the command.
See Also:
  • Field Details

  • Constructor Details

    • FetchCommand

      protected FetchCommand(Repository repo)
      Constructor for FetchCommand.
      Parameters:
      repo - a Repository object.
  • Method Details

    • getRecurseMode

      private SubmoduleConfig.FetchRecurseSubmodulesMode getRecurseMode(String path)
    • fetchSubmodules

      private void fetchSubmodules(FetchResult results) throws TransportException, GitAPIException, InvalidConfigurationException
      Throws:
      TransportException
      GitAPIException
      InvalidConfigurationException
    • call

      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 to call())

      Specified by:
      call in interface Callable<FetchResult>
      Specified by:
      call in class GitCommand<FetchResult>
      Throws:
      GitAPIException
      InvalidRemoteException
      TransportException
    • applyOptions

      private List<RefSpec> applyOptions(List<RefSpec> refSpecs2)
    • 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. If null use the value of the submodule.name.fetchRecurseSubmodules option configured per submodule. If not specified there, use the value of the fetch.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 of Constants.DEFAULT_REMOTE_NAME will be used.
      Parameters:
      remote - name of a remote
      Returns:
      this
      See Also:
    • 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 to true, 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 to true, refs are removed which no longer exist in the source
      Parameters:
      removeDeletedRefs - whether to remove deleted Refs
      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 to NullProgressMonitor
      Parameters:
      monitor - a ProgressMonitor
      Returns:
      this
      See Also:
    • getRefSpecs

      public List<RefSpec> getRefSpecs()
      Get list of RefSpecs
      Returns:
      the ref specs
    • setRefSpecs

      public FetchCommand setRefSpecs(String... specs)
      The ref specs to be used in the fetch operation
      Parameters:
      specs - String representation of RefSpecs
      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 multiple RefSpecs
      Returns:
      this
    • setRefSpecs

      public FetchCommand setRefSpecs(List<RefSpec> specs)
      The ref specs to be used in the fetch operation
      Parameters:
      specs - list of RefSpecs
      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 - the TagOpt
      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 passing null or HEAD.
      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