java.lang.Object
org.eclipse.jgit.internal.diffmergetool.DiffTools

public class DiffTools extends Object
Manages diff tools.
  • Constructor Details

    • DiffTools

      public DiffTools(Repository repo)
      Creates the external diff-tools manager for given repository.
      Parameters:
      repo - the repository
    • DiffTools

      public DiffTools(StoredConfig config)
      Creates the external merge-tools manager for given configuration.
      Parameters:
      config - the git configuration
  • Method Details

    • compare

      public Optional<FS.ExecutionResult> compare(FileElement localFile, FileElement remoteFile, Optional<String> toolName, BooleanTriState prompt, boolean gui, BooleanTriState trustExitCode, PromptContinueHandler promptHandler, InformNoToolHandler noToolHandler) throws ToolException
      Compare two versions of a file.
      Parameters:
      localFile - The local/left version of the file.
      remoteFile - The remote/right version of the file.
      toolName - Optionally the name of the tool to use. If not given the default tool will be used.
      prompt - Optionally a flag whether to prompt the user before compare. If not given the default will be used.
      gui - A flag whether to prefer a gui tool.
      trustExitCode - Optionally a flag whether to trust the exit code of the tool. If not given the default will be used.
      promptHandler - The handler to use when needing to prompt the user if he wants to continue.
      noToolHandler - The handler to use when needing to inform the user, that no tool is configured.
      Returns:
      the optional result of executing the tool if it was executed
      Throws:
      ToolException - when the tool fails
    • compare

      public FS.ExecutionResult compare(FileElement localFile, FileElement remoteFile, ExternalDiffTool tool, boolean trustExitCode) throws ToolException
      Compare two versions of a file.
      Parameters:
      localFile - the local file element
      remoteFile - the remote file element
      tool - the selected tool
      trustExitCode - the "trust exit code" option
      Returns:
      the execution result from tool
      Throws:
      ToolException - when the tool fails
    • getUserDefinedToolNames

      public Set<String> getUserDefinedToolNames()
      Get user defined tool names.
      Returns:
      the user defined tool names
    • getPredefinedToolNames

      public Set<String> getPredefinedToolNames()
      Get predefined tool names.
      Returns:
      the predefined tool names
    • getAllToolNames

      public Set<String> getAllToolNames()
      Get all tool names.
      Returns:
      the all tool names (default or available tool name is the first in the set)
    • getExternalToolFromAttributes

      public Optional<String> getExternalToolFromAttributes(String path) throws ToolException
      Provides Optional with the name of an external diff tool if specified in git configuration for a path. The formed git configuration results from global rules as well as merged rules from info and worktree attributes. Triggers TreeWalk until specified path found in the tree.
      Parameters:
      path - path to the node in repository to parse git attributes for
      Returns:
      name of the difftool if set
      Throws:
      ToolException - when the tool failed
    • getPredefinedAvailableTools

      public Set<String> getPredefinedAvailableTools()
      Checks the availability of the predefined tools in the system.
      Returns:
      set of predefined available tools
    • getUserDefinedTools

      public Map<String,ExternalDiffTool> getUserDefinedTools()
      Get user defined tools map.
      Returns:
      the user defined tools
    • getPredefinedTools

      public Map<String,ExternalDiffTool> getPredefinedTools(boolean checkAvailability)
      Get predefined tools map.
      Parameters:
      checkAvailability - true: for checking if tools can be executed; ATTENTION: this check took some time, do not execute often (store the map for other actions); false: availability is NOT checked: isAvailable() returns default false is this case!
      Returns:
      the predefined tools with optionally checked availability (long running operation)
    • getFirstAvailableTool

      public String getFirstAvailableTool()
      Get first available tool name.
      Returns:
      the name of first available predefined tool or null
    • getDefaultToolName

      public String getDefaultToolName(boolean gui)
      Get default (gui-)tool name.
      Parameters:
      gui - use the diff.guitool setting ?
      Returns:
      the default tool name
    • isInteractive

      public boolean isInteractive()
      Is interactive diff (prompt enabled) ?
      Returns:
      is interactive (config prompt enabled) ?