Class JGitUtils

    • Method Summary

      All Methods Static Methods Concrete Methods 
      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 getCredentials​(GitScmProviderRepository repository)
      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 List<ScmFile> getFilesInCommit​(org.eclipse.jgit.lib.Repository repository, org.eclipse.jgit.revwalk.RevCommit commit, File baseDir)
      get a list of all files in the given commit
      static org.eclipse.jgit.lib.ProgressMonitor getMonitor()
      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.
      static ScmFileStatus getScmFileStatus​(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType)
      Translate a FileStatus in the matching ScmFileStatus.
      static List<String> getTags​(org.eclipse.jgit.lib.Repository repo, org.eclipse.jgit.revwalk.RevCommit commit)
      Get a list of tags that has been set in the specified commit.
      static List<File> getWorkingCopyRelativePaths​(File workingCopyDirectory, ScmFileSet fileSet)
      Convert each file in the fileSet to their relative file path to workingCopyDirectory and return them in a list.
      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​(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​(org.eclipse.jgit.api.Git git, GitScmProviderRepository repo, org.eclipse.jgit.transport.RefSpec refSpec, Set<org.eclipse.jgit.transport.RemoteRefUpdate.Status> successfulStatuses, Optional<org.eclipse.jgit.api.TransportConfigCallback> transportConfigCallback)  
      static List<ScmFile> removeAllFiles​(org.eclipse.jgit.api.Git git, ScmFileSet fileSet)
      Remove all files in the given fileSet from the repository.
      static String toNormalizedFilePath​(File file)
      Converts the given file to a string only containing forward slashes
    • Method Detail

      • 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()
        Construct a logging ProgressMonitor for all JGit operations.
        Returns:
        a ProgressMonitor for use
      • prepareSession

        public static org.eclipse.jgit.transport.CredentialsProvider prepareSession​(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:
        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​(org.eclipse.jgit.api.Git git,
                                                                           GitScmProviderRepository repo,
                                                                           org.eclipse.jgit.transport.RefSpec refSpec,
                                                                           Set<org.eclipse.jgit.transport.RemoteRefUpdate.Status> successfulStatuses,
                                                                           Optional<org.eclipse.jgit.api.TransportConfigCallback> transportConfigCallback)
                                                                    throws PushException
        Throws:
        PushException
      • 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<ScmFilegetFilesInCommit​(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
      • getFilesInCommit

        public static List<ScmFilegetFilesInCommit​(org.eclipse.jgit.lib.Repository repository,
                                                     org.eclipse.jgit.revwalk.RevCommit commit,
                                                     File baseDir)
                                              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
        baseDir - the directory to which the returned files should be relative. May be null in case they should be relative to the working directory root.
        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<ScmFileaddAllFiles​(org.eclipse.jgit.api.Git git,
                                                ScmFileSet fileSet)
                                         throws org.eclipse.jgit.api.errors.GitAPIException
        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
      • removeAllFiles

        public static List<ScmFileremoveAllFiles​(org.eclipse.jgit.api.Git git,
                                                   ScmFileSet fileSet)
                                            throws org.eclipse.jgit.api.errors.GitAPIException
        Remove all files in the given fileSet from the repository.
        Parameters:
        git - the repo to remove the files from
        fileSet - the set of files within the workspace, the files are removed relative to the basedir of this fileset
        Returns:
        a list of removed files
        Throws:
        org.eclipse.jgit.api.errors.GitAPIException
      • getWorkingCopyRelativePaths

        public static List<FilegetWorkingCopyRelativePaths​(File workingCopyDirectory,
                                                             ScmFileSet fileSet)
        Convert each file in the fileSet to their relative file path to workingCopyDirectory and return them in a list.
        Parameters:
        workingCopyDirectory - the working copy root directory
        fileSet - the file set to convert
      • toNormalizedFilePath

        public static String toNormalizedFilePath​(File file)
        Converts the given file to a string only containing forward slashes
        Parameters:
        file -
        Returns:
        the normalized file path
      • 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
      • getTags

        public static List<StringgetTags​(org.eclipse.jgit.lib.Repository repo,
                                           org.eclipse.jgit.revwalk.RevCommit commit)
                                    throws IOException
        Get a list of tags that has been set in the specified commit.
        Parameters:
        repo - the repository to work on
        commit - the commit for which we want the tags
        Returns:
        a list of tags, might be empty, and never null
        Throws:
        IOException