Package org.eclipse.jgit.api

## 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:
  Git documentation about gc

### Field Summary

Fields
`static int` `DEFAULT_GC_AGGRESSIVE_DEPTH` Default value of maximum delta chain depth during aggressive garbage collection: 250
`static int` `DEFAULT_GC_AGGRESSIVE_WINDOW` Default window size during packing during aggressive garbage collection: * 250

### Fields inherited from class org.eclipse.jgit.api.GitCommand

`repo`

### Constructor Summary

Constructors
`protected` `GarbageCollectCommand​(Repository repo)`

### Method Summary

All Methods Instance Methods Concrete Methods
`Properties` `call()` Executes the command
`Properties` `getStatistics()` Computes and returns the repository statistics.
`GarbageCollectCommand` `setAggressive​(boolean aggressive)` Whether to use aggressive mode or not.
`GarbageCollectCommand` `setExpire​(Date expire)` During gc() or prune() each unreferenced, loose object which has been created or modified after `expire` will not be pruned.
`GarbageCollectCommand` `setProgressMonitor​(ProgressMonitor monitor)`

### Methods inherited from class org.eclipse.jgit.api.GitCommand

`checkCallable, getRepository, setCallable`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### 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:
  Constant Field Values

#### 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:
  Constant Field Values

### Constructor Detail

#### GarbageCollectCommand

    protected GarbageCollectCommand​(Repository repo)

Parameters:
  `repo` -

### Method Detail

#### setProgressMonitor

    public GarbageCollectCommand setProgressMonitor​(ProgressMonitor 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

#### call

    public Properties call()
                    throws GitAPIException

Description copied from class: `GitCommand`
Executes the command

Specified by:
  `call` in interface `Callable<Properties>`
Specified by:
  `call` in class `GitCommand<Properties>`
Returns:
  T a result. Each command has its own return type
Throws:
  `GitAPIException` - or subclass thereof when an error occurs

#### 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