Class GarbageCollectCommand

java.lang.Object
org.eclipse.jgit.api.GitCommand<Properties>
org.eclipse.jgit.api.GarbageCollectCommand
All Implemented Interfaces:
Callable<Properties>

public class GarbageCollectCommand extends GitCommand<Properties>
A class used to execute a gc command. It has setters for all supported options and arguments of this command and a call() method to finally execute the command. Each instance of this class should only be used for one invocation of the command (means: one call to call())
Since:
2.2
See Also:
  • Field Details

    • DEFAULT_GC_AGGRESSIVE_DEPTH

      public static final int DEFAULT_GC_AGGRESSIVE_DEPTH
      Default value of maximum delta chain depth during aggressive garbage collection: 250
      Since:
      3.6
      See Also:
    • DEFAULT_GC_AGGRESSIVE_WINDOW

      public static final int DEFAULT_GC_AGGRESSIVE_WINDOW
      Default window size during packing during aggressive garbage collection: * 250
      Since:
      3.6
      See Also:
    • monitor

      private ProgressMonitor monitor
    • expire

      private Date expire
    • pconfig

      private PackConfig pconfig
  • Constructor Details

    • GarbageCollectCommand

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

    • setProgressMonitor

      public GarbageCollectCommand setProgressMonitor(ProgressMonitor monitor)
      Set progress monitor
      Parameters:
      monitor - a progress monitor
      Returns:
      this instance
    • setExpire

      public GarbageCollectCommand setExpire(Date expire)
      During gc() or prune() each unreferenced, loose object which has been created or modified after expire will not be pruned. Only older objects may be pruned. If set to null then every object is a candidate for pruning. Use GitDateParser to parse time formats used by git gc.
      Parameters:
      expire - minimal age of objects to be pruned.
      Returns:
      this instance
    • setAggressive

      public GarbageCollectCommand setAggressive(boolean aggressive)
      Whether to use aggressive mode or not. If set to true JGit behaves more similar to native git's "git gc --aggressive". If set to true compressed objects found in old packs are not reused but every object is compressed again. Configuration variables pack.window and pack.depth are set to 250 for this GC.
      Parameters:
      aggressive - whether to turn on or off aggressive mode
      Returns:
      this instance
      Since:
      3.6
    • setPreserveOldPacks

      public GarbageCollectCommand setPreserveOldPacks(boolean preserveOldPacks)
      Whether to preserve old pack files instead of deleting them.
      Parameters:
      preserveOldPacks - whether to preserve old pack files
      Returns:
      this instance
      Since:
      4.7
    • setPrunePreserved

      public GarbageCollectCommand setPrunePreserved(boolean prunePreserved)
      Whether to prune preserved pack files in the preserved directory.
      Parameters:
      prunePreserved - whether to prune preserved pack files
      Returns:
      this instance
      Since:
      4.7
    • call

      public Properties call() throws GitAPIException

      Execute the command

      Specified by:
      call in interface Callable<Properties>
      Specified by:
      call in class GitCommand<Properties>
      Throws:
      GitAPIException
    • getStatistics

      public Properties getStatistics() throws GitAPIException
      Computes and returns the repository statistics.
      Returns:
      the repository statistics
      Throws:
      GitAPIException - thrown if the repository statistics cannot be computed
      Since:
      3.0
    • toProperties

      private static Properties toProperties(GC.RepoStatistics stats)