Class JGitUtils
- java.lang.Object
- 
- org.apache.maven.scm.provider.git.jgit.command.JGitUtils
 
- 
 public class JGitUtils extends Object JGit utility functions.- Since:
- 1.9
- Author:
- Mark Struberg, Dominik Bartholdi (imod)
 
- 
- 
Method SummaryAll 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 voidcloseRepo(org.eclipse.jgit.api.Git git)Closes the repository wrapped by the passed git object.static org.eclipse.jgit.transport.CredentialsProvidergetCredentials(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.ProgressMonitorgetMonitor()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 ScmFileStatusgetScmFileStatus(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType)Translate aFileStatusin the matchingScmFileStatus.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 thefileSetto their relative file path to workingCopyDirectory and return them in a list.static booleanhasCommits(org.eclipse.jgit.lib.Repository repo)Does the Repository have any commits?static org.eclipse.jgit.api.GitopenRepo(File basedir)Opens a JGit repository in the current directory or a parent directory.static org.eclipse.jgit.transport.CredentialsProviderprepareSession(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 StringtoNormalizedFilePath(File file)Converts the given file to a string only containing forward slashes.
 
- 
- 
- 
Method Detail- 
openRepopublic 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
 
 - 
closeRepopublic static void closeRepo(org.eclipse.jgit.api.Git git) Closes the repository wrapped by the passed git object.- Parameters:
- git-
 
 - 
getMonitorpublic static org.eclipse.jgit.lib.ProgressMonitor getMonitor() Construct a logging ProgressMonitor for all JGit operations.- Returns:
- a ProgressMonitor for use
 
 - 
prepareSessionpublic 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:
- CredentialsProviderin case credential information is configured in the repository
 
 - 
getCredentialspublic 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:
- nullif there is not enough info to create a provider with
 
 - 
pushpublic 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
 
 - 
hasCommitspublic static boolean hasCommits(org.eclipse.jgit.lib.Repository repo) Does the Repository have any commits?- Parameters:
- repo-
- Returns:
- false if there are no commits
 
 - 
getFilesInCommitpublic 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.CorruptObjectException
- org.eclipse.jgit.errors.IncorrectObjectTypeException
- IOException
- org.eclipse.jgit.errors.MissingObjectException
 
 - 
getFilesInCommitpublic static List<ScmFile> getFilesInCommit(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- nullin case they should be relative to the working directory root.
- Returns:
- a list of files included in the commit
- Throws:
- org.eclipse.jgit.errors.CorruptObjectException
- org.eclipse.jgit.errors.IncorrectObjectTypeException
- IOException
- org.eclipse.jgit.errors.MissingObjectException
 
 - 
getScmFileStatuspublic static ScmFileStatus getScmFileStatus(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType) Translate aFileStatusin the matchingScmFileStatus.- Parameters:
- changeType-
- Returns:
- the matching ScmFileStatus
 
 - 
addAllFilespublic static List<ScmFile> addAllFiles(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
 
 - 
removeAllFilespublic static List<ScmFile> removeAllFiles(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
 
 - 
getWorkingCopyRelativePathspublic static List<File> getWorkingCopyRelativePaths(File workingCopyDirectory, ScmFileSet fileSet) Convert each file in thefileSetto 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
 
 - 
toNormalizedFilePathpublic static String toNormalizedFilePath(File file) Converts the given file to a string only containing forward slashes.- Parameters:
- file-
- Returns:
- the normalized file path
 
 - 
getRevCommitspublic 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:
- org.eclipse.jgit.errors.IncorrectObjectTypeException
- IOException
- org.eclipse.jgit.errors.MissingObjectException
 
 - 
getTagspublic static List<String> getTags(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
 
 
- 
 
-