Package org.apache.maven.scm.manager
Interface ScmManager
- All Known Implementing Classes:
AbstractScmManager
,BasicScmManager
public interface ScmManager
- Author:
- Trygve Laugstøl, Brett Porter, Emmanuel Venisse, Olivier Lamy
-
Method Summary
Modifier and TypeMethodDescriptionadd
(ScmRepository repository, ScmFileSet fileSet) Adds the given files to the source control systemadd
(ScmRepository repository, ScmFileSet fileSet, String message) Adds the given files to the source control systemblame
(BlameScmRequest blameScmRequest) blame
(ScmRepository repository, ScmFileSet fileSet, String filename) Returns the blame of specified filebranch
(ScmRepository repository, ScmFileSet fileSet, String branchName) Branch (or label in some systems) will create a branch of the source file with a certain branch namebranch
(ScmRepository repository, ScmFileSet fileSet, String branchName, String message) Branch (or label in some systems) will create a branch of the source file with a certain branch namechangeLog
(ChangeLogScmRequest scmRequest) Returns the changes that have happend in the source control system in a certain period of time.changeLog
(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch) Deprecated.changeLog
(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch, String datePattern) Deprecated.changeLog
(ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion) Deprecated.changeLog
(ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision, ScmVersion endRevision, String datePattern) Deprecated.checkIn
(ScmRepository repository, ScmFileSet fileSet, String message) Save the changes you have done into the repository.checkIn
(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message) Save the changes you have done into the repository.checkOut
(ScmRepository repository, ScmFileSet fileSet) Create a copy of the repository on your local machinecheckOut
(ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive) Create a copy of the repository on your local machine.checkOut
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) Create a copy of the repository on your local machinecheckOut
(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, boolean recursive) Create a copy of the repository on your local machine.diff
(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion) Create a diff between two branch/tag/revision.edit
(ScmRepository repository, ScmFileSet fileSet) Make a file editable.export
(ScmRepository repository, ScmFileSet fileSet) Create an exported copy of the repository on your local machineexport
(ScmRepository repository, ScmFileSet fileSet, String outputDirectory) Create an exported copy of the repository on your local machineexport
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) Create an exported copy of the repository on your local machineexport
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory) Create an exported copy of the repository on your local machinegetProviderByRepository
(ScmRepository repository) getProviderByType
(String providerType) Returns the default provider registered for this providerType or a specific implementation if the 'maven.scm.provider.providerType.implementation' system property is defined.getProviderByUrl
(String scmUrl) list
(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version) List each element (files and directories) of fileSet as they exist in the repository.makeProviderScmRepository
(String providerType, File path) makeScmRepository
(String scmUrl) Generate a SCMRepository from a SCM url.mkdir
(ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal) Create new directory/directories in the repository.remove
(ScmRepository repository, ScmFileSet fileSet, String message) Removes the given files from the source control systemvoid
setScmProvider
(String providerType, ScmProvider provider) Set a provider to be used for a type of SCM.void
setScmProviderImplementation
(String providerType, String providerImplementation) Set the provider implementationstatus
(ScmRepository repository, ScmFileSet fileSet) Returns the status of the files in the source control system.tag
(ScmRepository repository, ScmFileSet fileSet, String tagName) Tag (or label in some systems) will tag the source file with a certain tagtag
(ScmRepository repository, ScmFileSet fileSet, String tagName, String message) Tag (or label in some systems) will tag the source file with a certain tagunedit
(ScmRepository repository, ScmFileSet fileSet) Make a file no longer editable.update
(ScmRepository repository, ScmFileSet fileSet) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, String datePattern) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate) Updates the copy on the local machine with the changes in the repositoryupdate
(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern) Updates the copy on the local machine with the changes in the repositoryvalidateScmRepository
(String scmUrl) Validate a SCM URL.
-
Method Details
-
makeScmRepository
ScmRepository makeScmRepository(String scmUrl) throws ScmRepositoryException, NoSuchScmProviderException Generate a SCMRepository from a SCM url.- Parameters:
scmUrl
- the scm url- Returns:
- The scm repository
- Throws:
ScmRepositoryException
- if an error occurs in the scm repository constructionNoSuchScmProviderException
- if the provider doesn't exist
-
makeProviderScmRepository
ScmRepository makeProviderScmRepository(String providerType, File path) throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException -
validateScmRepository
Validate a SCM URL.- Parameters:
scmUrl
- the SCM URL to validate- Returns:
List
ofString
objects with the messages returned by the SCM provider
-
getProviderByUrl
-
getProviderByType
Returns the default provider registered for this providerType or a specific implementation if the 'maven.scm.provider.providerType.implementation' system property is defined. For example: maven.scm.provider.git.implementation=git- Parameters:
providerType
- The provider type (git, svn...)- Returns:
- The scm provider
- Throws:
NoSuchScmProviderException
- if the provider doesn't exist
-
getProviderByRepository
- Throws:
NoSuchScmProviderException
-
setScmProvider
Set a provider to be used for a type of SCM. If there was already a designed provider for that type it will be replaced.- Parameters:
providerType
- the type of SCM, eg.svn
,git
provider
- the provider that will be used for that SCM type
-
setScmProviderImplementation
Set the provider implementation- Parameters:
providerType
- The provider type, eg.git
providerImplementation
- The provider implementation (the role-hint of the provider), eg.git
,svn
-
add
Adds the given files to the source control system- Parameters:
repository
- the source control systemfileSet
- the files to be added- Returns:
- an
AddScmResult
that contains the file paths (relative tofileSet.getBasedir()
) that have been added - Throws:
ScmException
- if any
-
add
Adds the given files to the source control system- Parameters:
repository
- the source control systemfileSet
- the files to be addedmessage
- a string that is a comment on the new added file- Returns:
- an
AddScmResult
that contains the file paths (relative tofileSet.getBasedir()
) that have been added - Throws:
ScmException
- if any
-
branch
BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName) throws ScmException Branch (or label in some systems) will create a branch of the source file with a certain branch name- Parameters:
repository
- the source control systemfileSet
- the files to branch. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.branchName
- the branch name to apply to the files- Returns:
- TODO
- Throws:
ScmException
- if any
-
branch
BranchScmResult branch(ScmRepository repository, ScmFileSet fileSet, String branchName, String message) throws ScmException Branch (or label in some systems) will create a branch of the source file with a certain branch name- Parameters:
repository
- the source control systemfileSet
- the files to branch. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.branchName
- the branch name to apply to the filesmessage
- the commit message used for the tag creation- Returns:
- TODO
- Throws:
ScmException
- if any
-
changeLog
@Deprecated ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch) throws ScmException Deprecated.Returns the changes that have happend in the source control system in a certain period of time. This can be adding, removing, updating, ... of files- Parameters:
repository
- the source control systemfileSet
- the files to know the changes about. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.startDate
- the start date of the periodendDate
- the end date of the periodnumDays
- the number days before the current time if startdate and enddate are nullbranch
- the branch/tag- Returns:
- The SCM result of the changelog command
- Throws:
ScmException
- if any
-
changeLog
@Deprecated ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch, String datePattern) throws ScmException Deprecated.Returns the changes that have happend in the source control system in a certain period of time. This can be adding, removing, updating, ... of files- Parameters:
repository
- the source control systemfileSet
- the files to know the changes about. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.startDate
- the start date of the periodendDate
- the end date of the periodnumDays
- the number days before the current time if startdate and enddate are nullbranch
- the branch/tagdatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- The SCM result of the changelog command
- Throws:
ScmException
- if any
-
changeLog
Returns the changes that have happend in the source control system in a certain period of time. This can be adding, removing, updating, ... of files- Parameters:
scmRequest
- request wrapping detailed parameters for the changelog command- Returns:
- The SCM result of the changelog command
- Throws:
ScmException
- if any- Since:
- 1.8
-
changeLog
@Deprecated ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion) throws ScmException Deprecated.Returns the changes that have happend in the source control system between two tags. This can be adding, removing, updating, ... of files- Parameters:
repository
- the source control systemfileSet
- the files to know the changes about. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.startVersion
- the start branch/tag/revisionendVersion
- the end branch/tag/revision- Returns:
- The SCM result of the changelog command
- Throws:
ScmException
- if any
-
changeLog
@Deprecated ChangeLogScmResult changeLog(ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision, ScmVersion endRevision, String datePattern) throws ScmException Deprecated.Returns the changes that have happend in the source control system between two tags. This can be adding, removing, updating, ... of files- Parameters:
repository
- the source control systemfileSet
- the files to know the changes about. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.startRevision
- the start revisionendRevision
- the end revisiondatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- TODO
- Throws:
ScmException
- if any
-
checkIn
CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException Save the changes you have done into the repository. This will create a new version of the file or directory in the repository.When the fileSet has no entries, the
fileSet.getBasedir()
is recursively committed. When the fileSet has entries, the commit is non-recursive and only the elements in the fileSet are committed.- Parameters:
repository
- the source control systemfileSet
- the files to check in (sometimes called commit)message
- a string that is a comment on the changes that where done- Returns:
- a
CheckInScmResult
that contains the file paths (relative tofileSet.getBasedir()
) that have been checked in. - Throws:
ScmException
- if any
-
checkIn
CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message) throws ScmException Save the changes you have done into the repository. This will create a new version of the file or directory in the repository.When the fileSet has no entries, the
fileSet.getBasedir()
is recursively committed. When the fileSet has entries, the commit is non-recursive and only the elements in the fileSet are committed.- Parameters:
repository
- the source control systemfileSet
- the files to check in (sometimes called commit)revision
- branch/tag/revisionmessage
- a string that is a comment on the changes that where done- Returns:
- a
CheckInScmResult
that contains the file paths (relative tofileSet.getBasedir()
) that have been checked in. - Throws:
ScmException
- if any
-
checkOut
Create a copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
location- Returns:
- TODO
- Throws:
ScmException
- if any
-
checkOut
CheckOutScmResult checkOut(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) throws ScmException Create a copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
locationversion
- get the version defined by the revision, branch or tag- Returns:
- TODO
- Throws:
ScmException
- if any
-
checkOut
CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive) throws ScmException Create a copy of the repository on your local machine.- Parameters:
scmRepository
- the source control systemscmFileSet
- the files are copied to theScmFileSet.getBasedir()
locationrecursive
- whether to check out recursively- Returns:
- TODO
- Throws:
ScmException
- if any
-
checkOut
CheckOutScmResult checkOut(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, boolean recursive) throws ScmException Create a copy of the repository on your local machine.- Parameters:
scmRepository
- the source control systemscmFileSet
- the files are copied to theScmFileSet.getBasedir()
locationversion
- get the version defined by the revision, branch or tagrecursive
- whether to check out recursively- Returns:
- TODO
- Throws:
ScmException
- if any
-
diff
DiffScmResult diff(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion) throws ScmException Create a diff between two branch/tag/revision.- Parameters:
scmRepository
- the source control systemscmFileSet
- the files are copied to theScmFileSet.getBasedir()
locationstartVersion
- the start branch/tag/revisionendVersion
- the end branch/tag/revision- Returns:
- TODO
- Throws:
ScmException
- if any
-
edit
Make a file editable. This is used in source control systems where you look at read-only files and you need to make them not read-only anymore before you can edit them. This can also mean that no other user in the system can make the file not read-only anymore.- Parameters:
repository
- the source control systemfileSet
- the files to make editable- Returns:
- TODO
- Throws:
ScmException
- if any
-
export
Create an exported copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
location- Returns:
- TODO
- Throws:
ScmException
- if any
-
export
ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) throws ScmException Create an exported copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
locationversion
- get the version defined by the branch/tag/revision- Returns:
- TODO
- Throws:
ScmException
- if any
-
export
ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, String outputDirectory) throws ScmException Create an exported copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
locationoutputDirectory
- the directory where the export will be stored- Returns:
- TODO
- Throws:
ScmException
- if any
-
export
ExportScmResult export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory) throws ScmException Create an exported copy of the repository on your local machine- Parameters:
repository
- the source control systemfileSet
- the files are copied to theScmFileSet.getBasedir()
locationversion
- get the version defined by the branch/tag/revisionoutputDirectory
- the directory where the export will be stored- Returns:
- TODO
- Throws:
ScmException
- if any
-
list
ListScmResult list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version) throws ScmException List each element (files and directories) of fileSet as they exist in the repository.- Parameters:
repository
- the source control systemfileSet
- the files to listrecursive
- descend recursivelyversion
- use the version defined by the branch/tag/revision- Returns:
- the list of files in the repository
- Throws:
ScmException
- if any
-
mkdir
MkdirScmResult mkdir(ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal) throws ScmException Create new directory/directories in the repository.- Parameters:
repository
- TODOfileSet
- TODOmessage
- TODOcreateInLocal
- TODO- Returns:
- TODO
- Throws:
ScmException
- if any
-
remove
RemoveScmResult remove(ScmRepository repository, ScmFileSet fileSet, String message) throws ScmException Removes the given files from the source control system- Parameters:
repository
- the source control systemfileSet
- the files to be removedmessage
- TODO- Returns:
- a
RemoveScmResult
that contains the file paths (relative tofileSet.getBasedir()
) that have been removed - Throws:
ScmException
- if any
-
status
Returns the status of the files in the source control system. The state of each file can be one of theScmFileStatus
flags.- Parameters:
repository
- the source control systemfileSet
- the files to know the status about. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.- Returns:
- TODO
- Throws:
ScmException
- if any
-
tag
Tag (or label in some systems) will tag the source file with a certain tag- Parameters:
repository
- the source control systemfileSet
- the files to tag. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.tagName
- the tag name to apply to the files- Returns:
- TODO
- Throws:
ScmException
- if any
-
tag
TagScmResult tag(ScmRepository repository, ScmFileSet fileSet, String tagName, String message) throws ScmException Tag (or label in some systems) will tag the source file with a certain tag- Parameters:
repository
- the source control systemfileSet
- the files to tag. Implementations can also give the changes from theScmFileSet.getBasedir()
downwards.tagName
- the tag name to apply to the filesmessage
- the commit message used for the tag creation- Returns:
- TODO
- Throws:
ScmException
- if any
-
unedit
Make a file no longer editable. This is the conterpart ofedit(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet)
. It makes the file read-only again.- Parameters:
repository
- the source control systemfileSet
- the files to make uneditable- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copy- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyversion
- use the version defined by the branch/tag/revision- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyrunChangelog
- Run the changelog command after the update- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyversion
- use the version defined by the branch/tag/revisionrunChangelog
- Run the changelog command after the update- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, String datePattern) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copydatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyversion
- use the version defined by the branch/tag/revisiondatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copylastUpdate
- TODO- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyversion
- use the version defined by the branch/tag/revisionlastUpdate
- TODO- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copylastUpdate
- Date of last updatedatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- TODO
- Throws:
ScmException
- if any
-
update
UpdateScmResult update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern) throws ScmException Updates the copy on the local machine with the changes in the repository- Parameters:
repository
- the source control systemfileSet
- location of your local copyversion
- use the version defined by the branch/tag/revisionlastUpdate
- Date of last updatedatePattern
- the date pattern use in changelog output returned by scm tool- Returns:
- TODO
- Throws:
ScmException
- if any
-
blame
BlameScmResult blame(ScmRepository repository, ScmFileSet fileSet, String filename) throws ScmException Returns the blame of specified file- Parameters:
repository
- the source control systemfileSet
- location of your local copyfilename
- file- Returns:
- blame for specified file
- Throws:
ScmException
- if any- Since:
- 1.4
-
blame
- Parameters:
blameScmRequest
- TODO- Returns:
- blame for specified file
- Throws:
ScmException
- if any- Since:
- 1.4
-
changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)
instead