Class JGitUtils
java.lang.Object
org.apache.maven.scm.provider.git.jgit.command.JGitUtils
JGit utility functions.
- Since:
- 1.9
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionaddAllFiles(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 objectstatic org.eclipse.jgit.transport.CredentialsProvidergetCredentials(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 commitstatic org.eclipse.jgit.lib.ProgressMonitorgetMonitor(ScmLogger logger) 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 booleanhasCommits(org.eclipse.jgit.lib.Repository repo) Does the Repository have any commits?static org.eclipse.jgit.api.GitOpens a JGit repository in the current directory or a parent directory.static org.eclipse.jgit.transport.CredentialsProviderprepareSession(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 Stringrelativize(URI baseUri, File f)
-
Constructor Details
-
JGitUtils
private JGitUtils()
-
-
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
public static void closeRepo(org.eclipse.jgit.api.Git git) Closes the repository wrapped by the passed git object- Parameters:
git-
-
getMonitor
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 detailsgit- the instance to configure (only in memory, not saved)repository- the repo config to be used- Returns:
CredentialsProviderin 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:
nullif 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.GitAPIExceptionorg.eclipse.jgit.api.errors.InvalidRemoteExceptionorg.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 repocommit- the commit to get the files from- Returns:
- a list of files included in the commit
- Throws:
org.eclipse.jgit.errors.MissingObjectExceptionorg.eclipse.jgit.errors.IncorrectObjectTypeExceptionorg.eclipse.jgit.errors.CorruptObjectExceptionIOException
-
getScmFileStatus
Translate aFileStatusin 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, org.eclipse.jgit.api.errors.NoFilepatternException 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.GitAPIExceptionorg.eclipse.jgit.api.errors.NoFilepatternException
-
relativize
-
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:
IOExceptionorg.eclipse.jgit.errors.MissingObjectExceptionorg.eclipse.jgit.errors.IncorrectObjectTypeException
-