Class JGitUtils
java.lang.Object
org.apache.maven.scm.provider.git.jgit.command.JGitUtils
JGit utility functions.
- Since:
- 1.9
- Author:
- Mark Struberg, Dominik Bartholdi (imod)
-
Method Summary
Modifier and TypeMethodDescriptionaddAllFiles
(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 objectstatic org.eclipse.jgit.transport.CredentialsProvider
getCredentials
(GitScmProviderRepository repository) Creates a credentials provider from the information passed in the repository.getFilesInCommit
(org.eclipse.jgit.lib.Repository repository, org.eclipse.jgit.revwalk.RevCommit commit) get a list of all files in the given commitgetFilesInCommit
(org.eclipse.jgit.lib.Repository repository, org.eclipse.jgit.revwalk.RevCommit commit, File baseDir) get a list of all files in the given commitstatic 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.static ScmFileStatus
getScmFileStatus
(org.eclipse.jgit.diff.DiffEntry.ChangeType changeType) Translate aFileStatus
in the matchingScmFileStatus
.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 boolean
hasCommits
(org.eclipse.jgit.lib.Repository repo) Does the Repository have any commits?static org.eclipse.jgit.api.Git
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) removeAllFiles
(org.eclipse.jgit.api.Git git, ScmFileSet fileSet) Remove all files in the given fileSet from the repository.
-
Method Details
-
openRepo
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
Closes the repository wrapped by the passed git object- Parameters:
git
-
-
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) 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
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 repocommit
- 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<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 repocommit
- the commit to get the files frombaseDir
- the directory to which the returned files should be relative. May benull
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
Translate aFileStatus
in the matchingScmFileStatus
.- 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 Adds all files in the given fileSet to the repository.- Parameters:
git
- the repo to add the files tofileSet
- 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<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 fromfileSet
- 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
-
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 onsortings
- sortingfromRev
- start revisiontoRev
- if null, falls back to headfromDate
- from which date ontoDate
- until which datemaxLines
- 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<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 oncommit
- the commit for which we want the tags- Returns:
- a list of tags, might be empty, and never
null
- Throws:
IOException
-