org.apache.maven.scm.manager

## Interface ScmManager

All Known Implementing Classes:
  AbstractScmManager, BasicScmManager, DefaultScmManager, ScmManagerStub

    public interface ScmManager

Author:
  Trygve Laugstøl, Brett Porter, Emmanuel Venisse, Olivier Lamy

### Field Summary

Fields
`static 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, String message)` Adds the given files to the source control system
`BlameScmResult` `blame(BlameScmRequest blameScmRequest)`
`BlameScmResult` `blame(ScmRepository repository, ScmFileSet fileSet, String filename)` Returns the blame of specified file
`BranchScmResult` `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
`BranchScmResult` `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
`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, Date startDate, Date endDate, int numDays, ScmBranch branch)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`ChangeLogScmResult` `changeLog(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch, 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, String datePattern)` Deprecated. use `changeLog(org.apache.maven.scm.command.changelog.ChangeLogScmRequest)` instead
`CheckInScmResult` `checkIn(ScmRepository repository, ScmFileSet fileSet, ScmVersion revision, String message)` Save the changes you have done into the repository.
`CheckInScmResult` `checkIn(ScmRepository repository, ScmFileSet fileSet, 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, 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.
`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, ScmVersion version)` Create an exported copy of the repository on your local machine
`ExportScmResult` `export(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String outputDirectory)` Create an exported copy of the repository on your local machine
`ExportScmResult` `export(ScmRepository repository, ScmFileSet fileSet, String outputDirectory)` Create an exported copy of the repository on your local machine
`ScmProvider` `getProviderByRepository(ScmRepository repository)`
`ScmProvider` `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.
`ScmProvider` `getProviderByUrl(String scmUrl)`
`ListScmResult` `list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version)` List each element (files and directories) of fileSet as they exist in the repository.
`ScmRepository` `makeProviderScmRepository(String providerType, File path)`
`ScmRepository` `makeScmRepository(String scmUrl)` Generate a SCMRepository from a SCM url.
`MkdirScmResult` `mkdir(ScmRepository repository, ScmFileSet fileSet, String message, boolean createInLocal)` Create new directory/directories in the repository.
`RemoveScmResult` `remove(ScmRepository repository, ScmFileSet fileSet, String message)` Removes the given files from the source control system
`void` `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 implementation
`StatusScmResult` `status(ScmRepository repository, ScmFileSet fileSet)` Returns the status of the files in the source control system.
`TagScmResult` `tag(ScmRepository repository, ScmFileSet fileSet, String tagName)` Tag (or label in some systems) will tag the source file with a certain tag
`TagScmResult` `tag(ScmRepository repository, ScmFileSet fileSet, String tagName, String message)` 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.
`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, Date lastUpdate)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update(ScmRepository repository, ScmFileSet fileSet, Date lastUpdate, String datePattern)` Updates the copy on the local machine with the changes in the repository
`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, Date lastUpdate)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, Date lastUpdate, String datePattern)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion version, String datePattern)` Updates the copy on the local machine with the changes in the repository
`UpdateScmResult` `update(ScmRepository repository, ScmFileSet fileSet, String datePattern)` Updates the copy on the local machine with the changes in the repository
`List<String>` `validateScmRepository(String scmUrl)` Validate a SCM URL.

### Field Detail

#### ROLE

    static final String ROLE

### Method Detail

#### 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 construction
  `NoSuchScmProviderException` - if the provider doesn't exist

#### makeProviderScmRepository

    ScmRepository makeProviderScmRepository(String providerType,
                                            File path)
                                     throws ScmRepositoryException,
                                            UnknownRepositoryStructure,
                                            NoSuchScmProviderException

Throws:
  `ScmRepositoryException`
  `UnknownRepositoryStructure`
  `NoSuchScmProviderException`

#### validateScmRepository

    List<String> validateScmRepository(String scmUrl)

Validate a SCM URL.

Parameters:
  `scmUrl` - the SCM URL to validate
Returns:
  `List` of `String` objects with the messages returned by the SCM provider

#### getProviderByUrl

    ScmProvider getProviderByUrl(String scmUrl)
                          throws ScmRepositoryException,
                                 NoSuchScmProviderException

Throws:
  `ScmRepositoryException`
  `NoSuchScmProviderException`

#### getProviderByType

    ScmProvider getProviderByType(String providerType)
                           throws NoSuchScmProviderException

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.cvs.implementation=cvs_native

Parameters:
  `providerType` - The provider type (cvs, svn...)
Returns:
  The scm provider
Throws:
  `NoSuchScmProviderException` - if the provider doesn't exist

#### getProviderByRepository

    ScmProvider getProviderByRepository(ScmRepository repository)
                                 throws NoSuchScmProviderException

Throws:
  `NoSuchScmProviderException`

#### setScmProvider

    void setScmProvider(String providerType,
                        ScmProvider provider)

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`, `cvs`
  `provider` - the provider that will be used for that SCM type

#### setScmProviderImplementation

    void setScmProviderImplementation(String providerType,
                                      String providerImplementation)

Set the provider implementation

Parameters:
  `providerType` - The provider type, eg. `cvs`
  `providerImplementation` - The provider implementation (the role-hint of the provider), eg. `cvs`, `cvs_native`

#### 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`

#### add

    AddScmResult add(ScmRepository repository,
                     ScmFileSet fileSet,
                     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

#### 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 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,
                           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 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

#### changeLog

    @Deprecated
    ChangeLogScmResult changeLog(ScmRepository repository,
                                             ScmFileSet fileSet,
                                             Date startDate,
                                             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,
                                             Date startDate,
                                             Date endDate,
                                             int numDays,
                                             ScmBranch branch,
                                             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,
                                             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,
                                             ScmVersion startRevision,
                                             ScmVersion endRevision,
                                             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,
                             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,
                             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)
                        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,
                               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

#### 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

#### 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

#### 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,
                           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
  `outputDirectory` - the directory where the export will be stored
Returns:
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 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

#### 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`

#### mkdir

    MkdirScmResult mkdir(ScmRepository repository,
                         ScmFileSet fileSet,
                         String message,
                         boolean createInLocal)
                  throws ScmException

Create new directory/directories in the repository.

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

#### 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 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,
                     String tagName)
              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
Returns:
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 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

#### 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

#### 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,
                           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,
                           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,
                           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
  `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,
                           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,
                           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
  `lastUpdate` -
Returns:
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 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,
                           Date lastUpdate,
                           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
  `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,
                           Date lastUpdate,
                           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

#### blame

    BlameScmResult blame(ScmRepository repository,
                         ScmFileSet fileSet,
                         String filename)
                  throws ScmException

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` - if any
Since:
  1.4

#### blame

    BlameScmResult blame(BlameScmRequest blameScmRequest)
                  throws ScmException

Parameters:
  `blameScmRequest` -
Returns:
  blame for specified file
Throws:
  `ScmException` - if any
Since:
  1.4