Class CleanCommand

java.lang.Object
org.eclipse.jgit.api.GitCommand<Set<String>>
org.eclipse.jgit.api.CleanCommand
All Implemented Interfaces:
Callable<Set<String>>

public class CleanCommand extends GitCommand<Set<String>>
Remove untracked files from the working tree
See Also:
  • Field Details

    • paths

      private Set<String> paths
    • dryRun

      private boolean dryRun
    • directories

      private boolean directories
    • ignore

      private boolean ignore
    • force

      private boolean force
  • Constructor Details

    • CleanCommand

      protected CleanCommand(Repository repo)
      Constructor for CleanCommand
      Parameters:
      repo - the Repository
  • Method Details

    • call

      Execute the command

      Executes the clean 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<Set<String>>
      Specified by:
      call in class GitCommand<Set<String>>
      Throws:
      NoWorkTreeException
      GitAPIException
    • cleanPath

      private Set<String> cleanPath(String path, Set<String> inFiles) throws IOException
      When dryRun is false, deletes the specified path from disk. If dryRun is true, no paths are actually deleted. In both cases, the paths that would have been deleted are added to inFiles and returned. Paths that are directories are recursively deleted when directories is true. Paths that are git repositories are recursively deleted when directories and force are both true.
      Parameters:
      path - The path to be cleaned
      inFiles - A set of strings representing the files that have been cleaned already, the path to be cleaned will be added to this set before being returned.
      Returns:
      a set of strings with the cleaned path added to it
      Throws:
      IOException
    • filterIgnorePaths

      private Set<String> filterIgnorePaths(Set<String> inputPaths, Set<String> ignoredNotInIndex, boolean exact)
    • filterFolders

      private Set<String> filterFolders(Set<String> untracked, Set<String> untrackedFolders)
    • setPaths

      public CleanCommand setPaths(Set<String> paths)
      If paths are set, only these paths are affected by the cleaning.
      Parameters:
      paths - the paths to set (with / as separator)
      Returns:
      this
    • setDryRun

      public CleanCommand setDryRun(boolean dryRun)
      If dryRun is set, the paths in question will not actually be deleted.
      Parameters:
      dryRun - whether to do a dry run or not
      Returns:
      this
    • setForce

      public CleanCommand setForce(boolean force)
      If force is set, directories that are git repositories will also be deleted.
      Parameters:
      force - whether or not to delete git repositories
      Returns:
      this
      Since:
      4.5
    • setCleanDirectories

      public CleanCommand setCleanDirectories(boolean dirs)
      If dirs is set, in addition to files, also clean directories.
      Parameters:
      dirs - whether to clean directories too, or only files.
      Returns:
      this
    • setIgnore

      public CleanCommand setIgnore(boolean ignore)
      If ignore is set, don't report/clean files/directories that are ignored by a .gitignore. otherwise do handle them.
      Parameters:
      ignore - whether to respect .gitignore or not.
      Returns:
      this