java.lang.Object
org.apache.maven.scm.provider.git.jgit.command.JGitUtils

public class JGitUtils extends Object
JGit utility functions.
Since:
1.9
  • Constructor Summary

    Constructors
    Modifier
    Constructor
    Description
    private
     
  • Method Summary

    Modifier and Type
    Method
    Description
    static List<ScmFile>
    addAllFiles(org.eclipse.jgit.api.Git git, ScmFileSet fileSet)
    Adds all files in the given fileSet to the repository.
    static void
    closeRepo(org.eclipse.jgit.api.Git git)
    Closes the repository wrapped by the passed git object
    static org.eclipse.jgit.transport.CredentialsProvider
    Creates a credentials provider from the information passed in the repository.
    static List<ScmFile>
    getFilesInCommit(org.eclipse.jgit.lib.Repository repository, org.eclipse.jgit.revwalk.RevCommit commit)
    get a list of all files in the given commit
    static org.eclipse.jgit.lib.ProgressMonitor
    Construct a logging ProgressMonitor for all JGit operations.
    static List<org.eclipse.jgit.revwalk.RevCommit>
    getRevCommits(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevSort[] sortings, String fromRev, String toRev, Date fromDate, Date toDate, int maxLines)
    Get a list of commits between two revisions.
    getScmFileStatus(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType)
    Translate a FileStatus in the matching ScmFileStatus.
    static boolean
    hasCommits(org.eclipse.jgit.lib.Repository repo)
    Does the Repository have any commits?
    static org.eclipse.jgit.api.Git
    openRepo(File basedir)
    Opens a JGit repository in the current directory or a parent directory.
    static org.eclipse.jgit.transport.CredentialsProvider
    prepareSession(ScmLogger logger, org.eclipse.jgit.api.Git git, GitScmProviderRepository repository)
    Prepares the in memory configuration of git to connect to the configured repository.
    static Iterable<org.eclipse.jgit.transport.PushResult>
    push(ScmLogger logger, org.eclipse.jgit.api.Git git, GitScmProviderRepository repo, org.eclipse.jgit.transport.RefSpec refSpec)
     
    private static String
    relativize(URI baseUri, File f)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JGitUtils

      private JGitUtils()
  • Method Details

    • openRepo

      public static org.eclipse.jgit.api.Git openRepo(File basedir) throws IOException
      Opens a JGit repository in the current directory or a parent directory.
      Parameters:
      basedir - The directory to start with
      Throws:
      IOException - If the repository cannot be opened
    • closeRepo

      public static void closeRepo(org.eclipse.jgit.api.Git git)
      Closes the repository wrapped by the passed git object
      Parameters:
      git -
    • getMonitor

      public static org.eclipse.jgit.lib.ProgressMonitor getMonitor(ScmLogger logger)
      Construct a logging ProgressMonitor for all JGit operations.
      Parameters:
      logger -
      Returns:
      a ProgressMonitor for use
    • prepareSession

      public static org.eclipse.jgit.transport.CredentialsProvider prepareSession(ScmLogger logger, org.eclipse.jgit.api.Git git, GitScmProviderRepository repository)
      Prepares the in memory configuration of git to connect to the configured repository. It configures the following settings in memory:
      • push url
      • fetch url

      Parameters:
      logger - used to log some details
      git - the instance to configure (only in memory, not saved)
      repository - the repo config to be used
      Returns:
      CredentialsProvider in case there are credentials informations configured in the repository.
    • getCredentials

      public static org.eclipse.jgit.transport.CredentialsProvider getCredentials(GitScmProviderRepository repository)
      Creates a credentials provider from the information passed in the repository. Current implementation supports:
      • UserName/Password

      Parameters:
      repository - the config to get the details from
      Returns:
      null if there is not enough info to create a provider with
    • push

      public static Iterable<org.eclipse.jgit.transport.PushResult> push(ScmLogger logger, org.eclipse.jgit.api.Git git, GitScmProviderRepository repo, org.eclipse.jgit.transport.RefSpec refSpec) throws org.eclipse.jgit.api.errors.GitAPIException, org.eclipse.jgit.api.errors.InvalidRemoteException, org.eclipse.jgit.api.errors.TransportException
      Throws:
      org.eclipse.jgit.api.errors.GitAPIException
      org.eclipse.jgit.api.errors.InvalidRemoteException
      org.eclipse.jgit.api.errors.TransportException
    • hasCommits

      public static boolean hasCommits(org.eclipse.jgit.lib.Repository repo)
      Does the Repository have any commits?
      Parameters:
      repo -
      Returns:
      false if there are no commits
    • getFilesInCommit

      public static List<ScmFile> getFilesInCommit(org.eclipse.jgit.lib.Repository repository, org.eclipse.jgit.revwalk.RevCommit commit) throws org.eclipse.jgit.errors.MissingObjectException, org.eclipse.jgit.errors.IncorrectObjectTypeException, org.eclipse.jgit.errors.CorruptObjectException, IOException
      get a list of all files in the given commit
      Parameters:
      repository - the repo
      commit - the commit to get the files from
      Returns:
      a list of files included in the commit
      Throws:
      org.eclipse.jgit.errors.MissingObjectException
      org.eclipse.jgit.errors.IncorrectObjectTypeException
      org.eclipse.jgit.errors.CorruptObjectException
      IOException
    • getScmFileStatus

      public static ScmFileStatus getScmFileStatus(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType)
      Translate a FileStatus in the matching ScmFileStatus.
      Parameters:
      changeType -
      Returns:
      the matching ScmFileStatus
    • addAllFiles

      public static List<ScmFile> addAllFiles(org.eclipse.jgit.api.Git git, ScmFileSet fileSet) throws org.eclipse.jgit.api.errors.GitAPIException, org.eclipse.jgit.api.errors.NoFilepatternException
      Adds all files in the given fileSet to the repository.
      Parameters:
      git - the repo to add the files to
      fileSet - the set of files within the workspace, the files are added relative to the basedir of this fileset
      Returns:
      a list of added files
      Throws:
      org.eclipse.jgit.api.errors.GitAPIException
      org.eclipse.jgit.api.errors.NoFilepatternException
    • relativize

      private static String relativize(URI baseUri, File f)
    • getRevCommits

      public static List<org.eclipse.jgit.revwalk.RevCommit> getRevCommits(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevSort[] sortings, String fromRev, String toRev, Date fromDate, Date toDate, int maxLines) throws IOException, org.eclipse.jgit.errors.MissingObjectException, org.eclipse.jgit.errors.IncorrectObjectTypeException
      Get a list of commits between two revisions.
      Parameters:
      repo - the repository to work on
      sortings - sorting
      fromRev - start revision
      toRev - if null, falls back to head
      fromDate - from which date on
      toDate - until which date
      maxLines - max number of lines
      Returns:
      a list of commits, might be empty, but never null
      Throws:
      IOException
      org.eclipse.jgit.errors.MissingObjectException
      org.eclipse.jgit.errors.IncorrectObjectTypeException