Interface ScmManager
- All Known Implementing Classes:
AbstractScmManager, BasicScmManager, DefaultScmManager, ScmManagerStub
public interface ScmManager
-
Method Summary
Modifier and TypeMethodDescriptionadd(ScmRepository repository, ScmFileSet fileSet) Adds the given files to the source control system.add(ScmRepository repository, ScmFileSet fileSet, String message) Adds the given files to the source control system.blame(BlameScmRequest blameScmRequest) blame(ScmRepository repository, ScmFileSet fileSet, String filename) Returns the blame of specified file.branch(ScmRepository repository, ScmFileSet fileSet, String branchName) Branch (or label in some systems) will create a branch of the source file with a certain branch name.branch(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 name.changeLog(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, CommandParameters commandParameters) 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 machine.checkOut(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 machine.checkOut(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 machine.export(ScmRepository repository, ScmFileSet fileSet, String outputDirectory) Create an exported copy of the repository on your local machine.export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) Create an exported copy of the repository on your local machine.export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory) Create an exported copy of the repository on your local machine.getProviderByRepository(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.Generate aScmRepositoryfor a given checkout (working) directory.makeProviderScmRepository(String providerType, File path) Generate aScmRepositoryfor a specific provider and a given checkout (working) directorymakeScmRepository(String scmUrl) Generate aScmRepositoryfrom an 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 system.voidsetScmProvider(String providerType, ScmProvider provider) Set a provider to be used for a type of SCM.voidsetScmProviderImplementation(String providerType, String providerImplementation) Set the provider implementation.status(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 tag.tag(ScmRepository repository, ScmFileSet fileSet, String tagName, String message) Tag (or label in some systems) will tag the source file with a certain tag.unedit(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 repository.update(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, String datePattern) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate) Updates the copy on the local machine with the changes in the repository.update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern) Updates the copy on the local machine with the changes in the repository.validateScmRepository(String scmUrl) Validate a SCM URL.
-
Method Details
-
makeScmRepository
ScmRepository makeScmRepository(String scmUrl) throws ScmRepositoryException, NoSuchScmProviderException Generate aScmRepositoryfrom an SCM URL.- Parameters:
scmUrl- the scm url- Returns:
- the scm repository (never
null) - Throws:
NoSuchScmProviderException- if the provider doesn't existScmRepositoryException- if an error occurs in the scm repository construction
-
makeProviderScmRepository
ScmRepository makeProviderScmRepository(String providerType, File path) throws ScmRepositoryException, UnknownRepositoryStructure, NoSuchScmProviderException Generate aScmRepositoryfor a specific provider and a given checkout (working) directory- Parameters:
providerType-path- the checkout (working) directory- Returns:
- the SCM repository (never
null) - Throws:
ScmRepositoryException- if the provider does not recognize the directoryUnknownRepositoryStructure- if the provider does not support this way of generating aScmRepositoryNoSuchScmProviderException- if the given provider type does not have a provider implementation bound
-
makeProviderScmRepository
Generate aScmRepositoryfor a given checkout (working) directory. Determines a suitable SCM provider for the directory by looking for SCM specific metadata files.- Parameters:
path- the checkout (working) directory- Returns:
- the
ScmRepositoryor empty if no suitable provider found - Since:
- 2.2.1
-
validateScmRepository
-
getProviderByUrl
ScmProvider getProviderByUrl(String scmUrl) throws ScmRepositoryException, NoSuchScmProviderException -
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, e.g.svn,gitprovider- the provider that will be used for that SCM type
-
setScmProviderImplementation
-
add
Adds the given files to the source control system.- Parameters:
repository- the source control systemfileSet- the files to be added- Returns:
- an
AddScmResultthat 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
AddScmResultthat 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
CheckInScmResultthat contains the file paths (relative tofileSet.getBasedir()) that have been checked in - Throws:
ScmException- if any
-
checkIn
CheckInScmResult checkIn(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters) 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)commandParameters- parameters for the command, such as commit message and whether to sign the commit.CommandParameters- Returns:
- a
CheckInScmResultthat 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
CheckInScmResultthat 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 writable before you can edit them. This can also mean that no other user in the system can make the file writable.- 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
RemoveScmResultthat 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 theScmFileStatusflags.- 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