Package org.apache.maven.scm.provider

## Interface ScmProvider

All Known Implementing Classes:
  `AbstractCvsScmProvider`, `AbstractGitScmProvider`, `AbstractScmProvider`, `AbstractSvnScmProvider`, `AccuRevScmProvider`, `BazaarScmProvider`, `ClearCaseScmProvider`, `CvsExeScmProvider`, `CvsJavaScmProvider`, `GitExeScmProvider`, `HgScmProvider`, `LocalScmProvider`, `PerforceScmProvider`, `ScmProviderStub`, `StarteamScmProvider`, `SvnExeScmProvider`, `SynergyScmProvider`, `TfsScmProvider`

    public interface ScmProvider

Author:
  Emmanuel Venisse

### Field Summary

Fields
`static java.lang.String` `ROLE`

### Method Summary

All Methods Instance Methods Abstract Methods Deprecated Methods
`AddScmResult` `add​(ScmRepository repository, ScmFileSet fileSet)` Adds the given files to the source control system
`AddScmResult` `add​(ScmRepository repository, ScmFileSet fileSet, java.lang.String message)` Adds the given files to the source control system
`AddScmResult` `add​(ScmRepository repository, ScmFileSet fileSet, CommandParameters commandParameters)` Adds the given files to the source control system
`void` `addListener​(ScmLogger logger)` Add a logger listener.
`BlameScmResult` `blame​(BlameScmRequest blameScmRequest)`
`BlameScmResult` `blame​(ScmRepository repository, ScmFileSet fileSet, java.lang.String filename)` Deprecated. use blame with `BlameScmRequest` parameter
`BranchScmResult` `branch​(ScmRepository repository, ScmFileSet fileSet, java.lang.String branchName)` Deprecated. use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
`BranchScmResult` `branch​(ScmRepository repository, ScmFileSet fileSet, java.lang.String branchName, java.lang.String message)` Deprecated. use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
`BranchScmResult` `branch​(ScmRepository repository, ScmFileSet fileSet, java.lang.String branchName, ScmBranchParameters scmBranchParameters)` Branch (or label in some systems) will create a branch of the source file with a certain branch name
`ChangeLogScmResult` `changeLog​(ChangeLogScmRequest scmRequest)` Returns the changes that have happend in the source control system in a certain period of time.
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.lang.String startTag, java.lang.String endTag)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.lang.String startTag, java.lang.String endTag, java.lang.String datePattern)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.util.Date startDate, java.util.Date endDate, int numDays, java.lang.String branch)` Deprecated. you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.util.Date, java.util.Date, int, org.apache.maven.scm.ScmBranch)`
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.util.Date startDate, java.util.Date endDate, int numDays, java.lang.String branch, java.lang.String datePattern)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.util.Date startDate, java.util.Date endDate, int numDays, ScmBranch branch)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, java.util.Date startDate, java.util.Date endDate, int numDays, ScmBranch branch, java.lang.String datePattern)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog​(ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision, ScmVersion endRevision, java.lang.String datePattern)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`CheckInScmResult` `checkIn​(ScmRepository repository, ScmFileSet fileSet, java.lang.String message)` Save the changes you have done into the repository.
`CheckInScmResult` `checkIn​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, java.lang.String message)` Deprecated. you must use `checkIn(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
`CheckInScmResult` `checkIn​(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, java.lang.String message)` Save the changes you have done into the repository.
`CheckOutScmResult` `checkOut​(ScmRepository repository, ScmFileSet fileSet)` Create a copy of the repository on your local machine
`CheckOutScmResult` `checkOut​(ScmRepository scmRepository, ScmFileSet scmFileSet, boolean recursive)` Create a copy of the repository on your local machine.
`CheckOutScmResult` `checkOut​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag)` Deprecated. you must use `checkOut(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
`CheckOutScmResult` `checkOut​(ScmRepository scmRepository, ScmFileSet scmFileSet, java.lang.String tag, boolean recursive)` Deprecated. you must use `checkOut(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, boolean)`
`CheckOutScmResult` `checkOut​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)` Create a copy of the repository on your local machine
`CheckOutScmResult` `checkOut​(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, boolean recursive)` Create a copy of the repository on your local machine.
`CheckOutScmResult` `checkOut​(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion version, CommandParameters commandParameters)` Create a copy of the repository on your local machine.
`DiffScmResult` `diff​(ScmRepository scmRepository, ScmFileSet scmFileSet, java.lang.String startRevision, java.lang.String endRevision)` Deprecated. you must use `diff(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, org.apache.maven.scm.ScmVersion)`
`DiffScmResult` `diff​(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion)` Create a diff between two branch/tag/revision.
`EditScmResult` `edit​(ScmRepository repository, ScmFileSet fileSet)` Make a file editable.
`ExportScmResult` `export​(ScmRepository repository, ScmFileSet fileSet)` Create an exported copy of the repository on your local machine
`ExportScmResult` `export​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag)` Deprecated. you must use `export(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
`ExportScmResult` `export​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, java.lang.String outputDirectory)` Deprecated. you must use `export(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
`ExportScmResult` `export​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)` Create an exported copy of the repository on your local machine
`ExportScmResult` `export​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, java.lang.String outputDirectory)` Create an exported copy of the repository on your local machine
`java.lang.String` `getScmSpecificFilename()` Returns the scm reserved file name where the SCM stores information like 'CVS', '.svn'.
`java.lang.String` `getScmType()`
`InfoScmResult` `info​(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
`ListScmResult` `list​(ScmRepository repository, ScmFileSet fileSet, boolean recursive, java.lang.String tag)` Deprecated. you must use `list(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, boolean, org.apache.maven.scm.ScmVersion)`
`ListScmResult` `list​(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version)` List each element (files and directories) of fileSet as they exist in the repository.
`ScmProviderRepository` `makeProviderScmRepository​(java.io.File path)`
`ScmProviderRepository` `makeProviderScmRepository​(java.lang.String scmSpecificUrl, char delimiter)`
`MkdirScmResult` `mkdir​(ScmRepository repository, ScmFileSet fileSet, java.lang.String message, boolean createInLocal)` Create directory/directories in the repository.
`RemoteInfoScmResult` `remoteInfo​(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
`RemoveScmResult` `remove​(ScmRepository repository, ScmFileSet fileSet, java.lang.String message)` Removes the given files from the source control system
`boolean` `requiresEditMode()`
`java.lang.String` `sanitizeTagName​(java.lang.String tag)` Given a tag name, make it suitable for this SCM provider.
`StatusScmResult` `status​(ScmRepository repository, ScmFileSet fileSet)` Returns the status of the files in the source control system.
`TagScmResult` `tag​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tagName)` Deprecated. use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
`TagScmResult` `tag​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tagName, java.lang.String message)` Deprecated. use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
`TagScmResult` `tag​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tagName, ScmTagParameters scmTagParameters)` Tag (or label in some systems) will tag the source file with a certain tag
`UnEditScmResult` `unedit​(ScmRepository repository, ScmFileSet fileSet)` Make a file no longer editable.
`UntagScmResult` `untag​(ScmRepository repository, ScmFileSet fileSet, CommandParameters parameters)` Deletes a tag.
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, boolean runChangelog)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, boolean runChangelog)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, boolean)`
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, java.lang.String datePattern)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, java.util.Date lastUpdate)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, java.util.Date)`
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, java.lang.String tag, java.util.Date lastUpdate, java.lang.String datePattern)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, java.util.Date, String)`
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, boolean runChangelog)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, java.lang.String datePattern)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, java.util.Date lastUpdate)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update​(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, java.util.Date lastUpdate, java.lang.String datePattern)` Updates the copy on the local machine with the changes in the repository
`java.util.List<java.lang.String>` `validateScmUrl​(java.lang.String scmSpecificUrl, char delimiter)` Validate the scm url.
`boolean` `validateTagName​(java.lang.String tag)` Check if this tag is valid for this SCM provider.

### Field Detail

#### ROLE

    static final java.lang.String ROLE

### Method Detail

#### getScmType

    java.lang.String getScmType()

#### addListener

    void addListener​(ScmLogger logger)

Add a logger listener.

Parameters:
  `logger` - The logger

#### requiresEditMode

    boolean requiresEditMode()

#### makeProviderScmRepository

    ScmProviderRepository makeProviderScmRepository​(java.lang.String scmSpecificUrl,
                                                    char delimiter)
                                             throws ScmRepositoryException

Throws:
  `ScmRepositoryException`

#### makeProviderScmRepository

    ScmProviderRepository makeProviderScmRepository​(java.io.File path)
                                             throws ScmRepositoryException,
                                                    UnknownRepositoryStructure

Throws:
  `ScmRepositoryException`
  `UnknownRepositoryStructure`

#### validateScmUrl

    java.util.List<java.lang.String> validateScmUrl​(java.lang.String scmSpecificUrl,
                                                    char delimiter)

Validate the scm url.

Parameters:
  `scmSpecificUrl` - The SCM url
  `delimiter` - The delimiter used in the SCM url
Returns:
  Returns a list of messages if the validation failed

#### getScmSpecificFilename

    java.lang.String getScmSpecificFilename()

Returns the scm reserved file name where the SCM stores information like 'CVS', '.svn'.

Returns:
  the scm reserved file name

#### validateTagName

    boolean validateTagName​(java.lang.String tag)

Check if this tag is valid for this SCM provider.

Parameters:
  `tag` - tag name to check
Returns:
  true if tag is valid

#### sanitizeTagName

    java.lang.String sanitizeTagName​(java.lang.String tag)

Given a tag name, make it suitable for this SCM provider. For example, CVS converts "." into "_"

Parameters:
  `tag` - input tag name
Returns:
  sanitized tag name

#### add

    AddScmResult add​(ScmRepository repository,
                     ScmFileSet fileSet)
              throws ScmException

Adds the given files to the source control system

Parameters:
  `repository` - the source control system
  `fileSet` - the files to be added
Returns:
  an `AddScmResult` that contains the files that have been added
Throws:
  `ScmException` - if any

#### add

    AddScmResult add​(ScmRepository repository,
                     ScmFileSet fileSet,
                     java.lang.String message)
              throws ScmException

Adds the given files to the source control system

Parameters:
  `repository` - the source control system
  `fileSet` - the files to be added
  `message` - a string that is a comment on the new added file
Returns:
  an `AddScmResult` that contains the files that have been added
Throws:
  `ScmException` - if any

#### add

    AddScmResult add​(ScmRepository repository,
                     ScmFileSet fileSet,
                     CommandParameters commandParameters)
              throws ScmException

Adds the given files to the source control system

Parameters:
  `repository` - the source control system
  `fileSet` - the files to be added
  `commandParameters` - `CommandParameters`
Returns:
  an `AddScmResult` that contains the files that have been added
Throws:
  `ScmException` - if any

#### branch

    BranchScmResult branch​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String branchName)
                    throws ScmException

Deprecated.
use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
Branch (or label in some systems) will create a branch of the source file with a certain branch name

Parameters:
  `repository` - the source control system
  `fileSet` - the files to branch. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `branchName` - the branch name to apply to the files
Returns:
Throws:
  `ScmException` - if any

#### branch

    BranchScmResult branch​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String branchName,
                           java.lang.String message)
                    throws ScmException

Deprecated.
use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
Branch (or label in some systems) will create a branch of the source file with a certain branch name

Parameters:
  `repository` - the source control system
  `fileSet` - the files to branch. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `branchName` - the branch name to apply to the files
  `message` - the commit message used for the tag creation
Returns:
Throws:
  `ScmException` - if any

#### branch

    BranchScmResult branch​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String branchName,
                           ScmBranchParameters scmBranchParameters)
                    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 system
  `fileSet` - the files to branch. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `branchName` - the branch name to apply to the files
Returns:
Throws:
  `ScmException` - if any
Since:
  1.3

#### changeLog

    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 java.util.Date startDate,
                                 java.util.Date endDate,
                                 int numDays,
                                 java.lang.String branch)
                          throws ScmException

Deprecated.
you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, java.util.Date, java.util.Date, int, org.apache.maven.scm.ScmBranch)`
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startDate` - the start date of the period
  `endDate` - the end date of the period
  `numDays` - the number days before the current time if startdate and enddate are null
  `branch` - the branch/tag name
Returns:
  The SCM result of the changelog command
Throws:
  `ScmException` - if any

#### changeLog

    @Deprecated
    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 java.util.Date startDate,
                                 java.util.Date endDate,
                                 int numDays,
                                 ScmBranch branch)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startDate` - the start date of the period
  `endDate` - the end date of the period
  `numDays` - the number days before the current time if startdate and enddate are null
  `branch` - the branch/tag
Returns:
  The SCM result of the changelog command
Throws:
  `ScmException` - if any

#### changeLog

    @Deprecated
    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 java.util.Date startDate,
                                 java.util.Date endDate,
                                 int numDays,
                                 java.lang.String branch,
                                 java.lang.String datePattern)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startDate` - the start date of the period
  `endDate` - the end date of the period
  `numDays` - the number days before the current time if startdate and enddate are null
  `branch` - the branch/tag name
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
  The SCM result of the changelog command
Throws:
  `ScmException` - if any

#### changeLog

    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 java.util.Date startDate,
                                 java.util.Date endDate,
                                 int numDays,
                                 ScmBranch branch,
                                 java.lang.String datePattern)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startDate` - the start date of the period
  `endDate` - the end date of the period
  `numDays` - the number days before the current time if startdate and enddate are null
  `branch` - the branch/tag
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
  The SCM result of the changelog command
Throws:
  `ScmException` - if any

#### changeLog

    ChangeLogScmResult changeLog​(ChangeLogScmRequest scmRequest)
                          throws ScmException

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,
                                 java.lang.String startTag,
                                 java.lang.String endTag)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startTag` - the start tag
  `endTag` - the end tag
Returns:
  The SCM result of the changelog command
Throws:
  `ScmException` - if any

#### changeLog

    @Deprecated
    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 ScmVersion startVersion,
                                 ScmVersion endVersion)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startVersion` - the start branch/tag/revision
  `endVersion` - 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,
                                 java.lang.String startTag,
                                 java.lang.String endTag,
                                 java.lang.String datePattern)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startTag` - the start tag
  `endTag` - the end tag
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### changeLog

    @Deprecated
    ChangeLogScmResult changeLog​(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 ScmVersion startRevision,
                                 ScmVersion endRevision,
                                 java.lang.String datePattern)
                          throws ScmException

Deprecated.
use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
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 system
  `fileSet` - the files to know the changes about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `startRevision` - the start revision
  `endRevision` - the end revision
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### checkIn

    CheckInScmResult checkIn​(ScmRepository repository,
                             ScmFileSet fileSet,
                             java.lang.String tag,
                             java.lang.String message)
                      throws ScmException

Deprecated.
you must use `checkIn(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
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 system
  `fileSet` - the files to check in (sometimes called commit)
  `tag` - tag or revision
  `message` - a string that is a comment on the changes that where done
Returns:
Throws:
  `ScmException` - if any

#### checkIn

    CheckInScmResult checkIn​(ScmRepository repository,
                             ScmFileSet fileSet,
                             java.lang.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 system
  `fileSet` - the files to check in (sometimes called commit)
  `message` - a string that is a comment on the changes that where done
Returns:
Throws:
  `ScmException` - if any

#### checkIn

    CheckInScmResult checkIn​(ScmRepository repository,
                             ScmFileSet fileSet,
                             ScmVersion revision,
                             java.lang.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 system
  `fileSet` - the files to check in (sometimes called commit)
  `revision` - branch/tag/revision
  `message` - a string that is a comment on the changes that where done
Returns:
Throws:
  `ScmException` - if any

#### checkOut

    CheckOutScmResult checkOut​(ScmRepository repository,
                               ScmFileSet fileSet,
                               java.lang.String tag)
                        throws ScmException

Deprecated.
you must use `checkOut(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
Create a copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `tag` - get the version defined by the tag
Returns:
Throws:
  `ScmException` - if any

#### checkOut

    CheckOutScmResult checkOut​(ScmRepository repository,
                               ScmFileSet fileSet)
                        throws ScmException

Create a copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
Returns:
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 system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `version` - get the version defined by the revision, branch or tag
Returns:
Throws:
  `ScmException` - if any

#### checkOut

    CheckOutScmResult checkOut​(ScmRepository scmRepository,
                               ScmFileSet scmFileSet,
                               java.lang.String tag,
                               boolean recursive)
                        throws ScmException

Deprecated.
you must use `checkOut(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, boolean)`
Create a copy of the repository on your local machine.

Parameters:
  `scmRepository` - the source control system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `tag` - tag or revision
  `recursive` - whether to check out recursively
Returns:
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 system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `recursive` - whether to check out recursively
Returns:
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 system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `version` - get the version defined by the revision, branch or tag
  `recursive` - whether to check out recursively
Returns:
Throws:
  `ScmException` - if any

#### checkOut

    CheckOutScmResult checkOut​(ScmRepository scmRepository,
                               ScmFileSet scmFileSet,
                               ScmVersion version,
                               CommandParameters commandParameters)
                        throws ScmException

Create a copy of the repository on your local machine.

Parameters:
  `scmRepository` - the source control system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `version` - get the version defined by the revision, branch or tag
  `commandParameters` - parameters
Returns:
Throws:
  `ScmException` - if any
Since:
  1.9.6

#### diff

    DiffScmResult diff​(ScmRepository scmRepository,
                       ScmFileSet scmFileSet,
                       java.lang.String startRevision,
                       java.lang.String endRevision)
                throws ScmException

Deprecated.
you must use `diff(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, org.apache.maven.scm.ScmVersion)`
Create a diff between two branch/tag/revision.

Parameters:
  `scmRepository` - the source control system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `startRevision` - the start revision
  `endRevision` - the end revision
Returns:
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 system
  `scmFileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `startVersion` - the start branch/tag/revision
  `endVersion` - the end branch/tag/revision
Returns:
Throws:
  `ScmException` - if any

#### export

    ExportScmResult export​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag)
                    throws ScmException

Deprecated.
you must use `export(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
Create an exported copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `tag` - get the version defined by the tag
Returns:
Throws:
  `ScmException` - if any

#### export

    ExportScmResult export​(ScmRepository repository,
                           ScmFileSet fileSet)
                    throws ScmException

Create an exported copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
Returns:
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 system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `version` - get the version defined by the branch/tag/revision
Returns:
Throws:
  `ScmException` - if any

#### export

    ExportScmResult export​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag,
                           java.lang.String outputDirectory)
                    throws ScmException

Deprecated.
you must use `export(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
Create an exported copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `tag` - get the version defined by the tag
  `outputDirectory` - the directory where the export will be stored
Returns:
Throws:
  `ScmException` - if any

#### export

    ExportScmResult export​(ScmRepository repository,
                           ScmFileSet fileSet,
                           ScmVersion version,
                           java.lang.String outputDirectory)
                    throws ScmException

Create an exported copy of the repository on your local machine

Parameters:
  `repository` - the source control system
  `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
  `version` - get the version defined by the branch/tag/revision
  `outputDirectory` - the directory where the export will be stored
Returns:
Throws:
  `ScmException` - if any

#### remove

    RemoveScmResult remove​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String message)
                    throws ScmException

Removes the given files from the source control system

Parameters:
  `repository` - the source control system
  `fileSet` - the files to be removed
  `message` -
Returns:
Throws:
  `ScmException` - if any

#### status

    StatusScmResult status​(ScmRepository repository,
                           ScmFileSet fileSet)
                    throws ScmException

Returns the status of the files in the source control system. The state of each file can be one of the `ScmFileStatus` flags.

Parameters:
  `repository` - the source control system
  `fileSet` - the files to know the status about. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
Returns:
Throws:
  `ScmException` - if any

#### tag

    TagScmResult tag​(ScmRepository repository,
                     ScmFileSet fileSet,
                     java.lang.String tagName)
              throws ScmException

Deprecated.
use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
Tag (or label in some systems) will tag the source file with a certain tag

Parameters:
  `repository` - the source control system
  `fileSet` - the files to tag. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `tagName` - the tag name to apply to the files
Returns:
Throws:
  `ScmException` - if any

#### untag

    UntagScmResult untag​(ScmRepository repository,
                         ScmFileSet fileSet,
                         CommandParameters parameters)
                  throws ScmException

Deletes a tag.

Parameters:
  `repository` - the source control system
  `fileSet` - a fileset with the relevant working directory as basedir
  `parameters` -
Returns:
Throws:
  `ScmException` - if any

#### tag

    TagScmResult tag​(ScmRepository repository,
                     ScmFileSet fileSet,
                     java.lang.String tagName,
                     java.lang.String message)
              throws ScmException

Deprecated.
use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
Tag (or label in some systems) will tag the source file with a certain tag

Parameters:
  `repository` - the source control system
  `fileSet` - the files to tag. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `tagName` - the tag name to apply to the files
  `message` - the commit message used for the tag creation
Returns:
Throws:
  `ScmException` - if any

#### tag

    TagScmResult tag​(ScmRepository repository,
                     ScmFileSet fileSet,
                     java.lang.String tagName,
                     ScmTagParameters scmTagParameters)
              throws ScmException

Tag (or label in some systems) will tag the source file with a certain tag

Parameters:
  `repository` - the source control system
  `fileSet` - the files to tag. Implementations can also give the changes from the `ScmFileSet.getBasedir()` downwards.
  `tagName` - the tag name to apply to the files
  `scmTagParameters` - bean to pass some paramters for tagging `ScmTagParameters`
Returns:
Throws:
  `ScmException` - if any
Since:
  1.2

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet)
                    throws ScmException

Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag)
                    throws ScmException

Deprecated.
you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion)`
Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `tag` - use the version defined by the tag
Returns:
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 system
  `fileSet` - location of your local copy
  `version` - use the version defined by the branch/tag/revision
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag,
                           boolean runChangelog)
                    throws ScmException

Deprecated.
you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, boolean)`
Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `tag` - use the version defined by the tag
  `runChangelog` - Run the changelog command after the update
Returns:
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 system
  `fileSet` - location of your local copy
  `runChangelog` - Run the changelog command after the update
Returns:
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 system
  `fileSet` - location of your local copy
  `version` - use the version defined by the branch/tag/revision
  `runChangelog` - Run the changelog command after the update
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag,
                           java.lang.String datePattern)
                    throws ScmException

Deprecated.
you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, String)`
Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `tag` - use the version defined by the tag
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           ScmVersion version,
                           java.lang.String datePattern)
                    throws ScmException

Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `version` - use the version defined by the branch/tag/revision
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag,
                           java.util.Date lastUpdate)
                    throws ScmException

Deprecated.
you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, java.util.Date)`
Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `tag` - use the version defined by the tag
  `lastUpdate` -
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           ScmVersion version,
                           java.util.Date lastUpdate)
                    throws ScmException

Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `version` - use the version defined by the branch/tag/revision
  `lastUpdate` -
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           java.lang.String tag,
                           java.util.Date lastUpdate,
                           java.lang.String datePattern)
                    throws ScmException

Deprecated.
you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, org.apache.maven.scm.ScmVersion, java.util.Date, String)`
Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `tag` - use the version defined by the tag
  `lastUpdate` - Date of last update
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### update

    UpdateScmResult update​(ScmRepository repository,
                           ScmFileSet fileSet,
                           ScmVersion version,
                           java.util.Date lastUpdate,
                           java.lang.String datePattern)
                    throws ScmException

Updates the copy on the local machine with the changes in the repository

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `version` - use the version defined by the branch/tag/revision
  `lastUpdate` - Date of last update
  `datePattern` - the date pattern use in changelog output returned by scm tool
Returns:
Throws:
  `ScmException` - if any

#### edit

    EditScmResult edit​(ScmRepository repository,
                       ScmFileSet fileSet)
                throws ScmException

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 system
  `fileSet` - the files to make editable
Returns:
Throws:
  `ScmException` - if any

#### unedit

    UnEditScmResult unedit​(ScmRepository repository,
                           ScmFileSet fileSet)
                    throws ScmException

Make a file no longer editable. This is the conterpart of `edit( org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet)`. It makes the file read-only again.

Parameters:
  `repository` - the source control system
  `fileSet` - the files to make uneditable
Returns:
Throws:
  `ScmException` - if any

#### list

    ListScmResult list​(ScmRepository repository,
                       ScmFileSet fileSet,
                       boolean recursive,
                       java.lang.String tag)
                throws ScmException

Deprecated.
you must use `list(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet, boolean, org.apache.maven.scm.ScmVersion)`
List each element (files and directories) of fileSet as they exist in the repository.

Parameters:
  `repository` - the source control system
  `fileSet` - the files to list
  `recursive` - descend recursively
  `tag` - use the version defined by the tag
Returns:
  the list of files in the repository
Throws:
  `ScmException`

#### 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 system
  `fileSet` - the files to list
  `recursive` - descend recursively
  `version` - use the version defined by the branch/tag/revision
Returns:
  the list of files in the repository
Throws:
  `ScmException` - if any

#### blame

    BlameScmResult blame​(ScmRepository repository,
                         ScmFileSet fileSet,
                         java.lang.String filename)
                  throws ScmException

Deprecated.
use blame with `BlameScmRequest` parameter
Returns the blame of specified file

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `filename` - file
Returns:
  blame for specified file
Throws:
  `ScmException`
Since:
  1.4

#### blame

    BlameScmResult blame​(BlameScmRequest blameScmRequest)
                  throws ScmException

Parameters:
  `blameScmRequest` -
Returns:
  blame for the file specified in the request
Throws:
  `ScmException`
Since:
  1.8

#### mkdir

    MkdirScmResult mkdir​(ScmRepository repository,
                         ScmFileSet fileSet,
                         java.lang.String message,
                         boolean createInLocal)
                  throws ScmException

Create directory/directories in the repository.

Parameters:
  `repository` -
  `fileSet` -
  `createInLocal` -
  `message` -
Returns:
Throws:
  `ScmException`

#### info

    InfoScmResult info​(ScmProviderRepository repository,
                       ScmFileSet fileSet,
                       CommandParameters parameters)
                throws ScmException

Parameters:
  `repository` - the source control system
  `fileSet` - location of your local copy
  `parameters` - some parameters (not use currently but for future use)
Returns:
  if the scm implementation doesn't support "info" result will `null`
Throws:
  `ScmException`
Since:
  1.5

#### remoteInfo

    RemoteInfoScmResult remoteInfo​(ScmProviderRepository repository,
                                   ScmFileSet fileSet,
                                   CommandParameters parameters)
                            throws ScmException

Parameters:
  `repository` - the source control system
  `fileSet` - not use currently but for future use
  `parameters` - some parameters (not use currently but for future use)
Returns:
  if the scm implementation doesn't support "info" result will `null`
Throws:
  `ScmException`
Since:
  1.6