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

  Version:
    $Id: ScmProvider.java 892494 2009-12-19 18:40:43Z olamy $
  Author:
    Emmanuel Venisse

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `static String` | `ROLE`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `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
    `void` | `addListener(ScmLogger logger)` Add a logger listener.
    `BranchScmResult` | `branch(ScmRepository repository, ScmFileSet fileSet, String branchName)` Deprecated. use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
    `BranchScmResult` | `branch(ScmRepository repository, ScmFileSet fileSet, String branchName, ScmBranchParameters scmBranchParameters)` 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)` Deprecated. use `#branch(ScmRepository, ScmFileSet, String, String, ScmBranchParameters)`
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, ScmBranch branch)` 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, String datePattern)` 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, 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, Date startDate, Date endDate, int numDays, String branch, String datePattern)` 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,String)`
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion)` Returns the changes that have happend in the source control system between two tags.
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, ScmVersion startRevision, ScmVersion endRevision, String datePattern)` Returns the changes that have happend in the source control system between two tags.
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag)` Deprecated. you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)`
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag, String datePattern)` Deprecated. you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion,String)`
    `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.
    `CheckInScmResult` | `checkIn(ScmRepository repository, ScmFileSet fileSet, String tag, String message)` Deprecated. you must use `checkIn(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)`
    `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.
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, 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, 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)`
    `DiffScmResult` | `diff(ScmRepository scmRepository, ScmFileSet scmFileSet, ScmVersion startVersion, ScmVersion endVersion)` Create a diff between two branch/tag/revision.
    `DiffScmResult` | `diff(ScmRepository scmRepository, ScmFileSet scmFileSet, String startRevision, 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)`
    `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 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, String tag, String outputDirectory)` Deprecated. you must use `export(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)`
    `String` | `getScmSpecificFilename()` Returns the scm reserved file name where the SCM stores information like 'CVS', '.svn'.
    `String` | `getScmType()`
    `ListScmResult` | `list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion version)` List each element (files and directories) of fileSet as they exist in the repository.
    `ListScmResult` | `list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag)` Deprecated. you must use `list(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,boolean,org.apache.maven.scm.ScmVersion)`
    `ScmProviderRepository` | `makeProviderScmRepository(File path)`
    `ScmProviderRepository` | `makeProviderScmRepository(String scmSpecificUrl, char delimiter)`
    `RemoveScmResult` | `remove(ScmRepository repository, ScmFileSet fileSet, String message)` Removes the given files from the source control system
    `boolean` | `requiresEditMode()`
    `String` | `sanitizeTagName(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, String tagName)` Deprecated. use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
    `TagScmResult` | `tag(ScmRepository repository, ScmFileSet fileSet, String tagName, ScmTagParameters scmTagParameters)` 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)` Deprecated. use `tag(ScmRepository, ScmFileSet, String, ScmTagParameters)`
    `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, 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 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, 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, String tag, 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, String tag, Date lastUpdate, 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, String tag, String datePattern)` Deprecated. you must use `update(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,String)`
    `List` | `validateScmUrl(String scmSpecificUrl, char delimiter)` Validate the scm url.
    `boolean` | `validateTagName(String tag)` Check if this tag is valid for this SCM provider.

- - ### Field Detail

    - #### ROLE

          static final String ROLE

  - ### Method Detail

    - #### getScmType

          String getScmType()

    - #### addListener

          void addListener(ScmLogger logger)

      Add a logger listener.
      Parameters:
        `logger` - The logger

    - #### requiresEditMode

          boolean requiresEditMode()

    - #### makeProviderScmRepository

          ScmProviderRepository makeProviderScmRepository(String scmSpecificUrl,
                                                        char delimiter)
                                                          throws ScmRepositoryException

      Throws:
        `ScmRepositoryException`

    - #### makeProviderScmRepository

          ScmProviderRepository makeProviderScmRepository(File path)
                                                          throws ScmRepositoryException,
                                                                 UnknownRepositoryStructure

      Throws:
        `ScmRepositoryException`
        `UnknownRepositoryStructure`

    - #### validateScmUrl

          List validateScmUrl(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

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

          String sanitizeTagName(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,
                         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

      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,
                               String branchName,
                               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,
                               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
        `message` - the commit message used for the tag creation
      Returns:
      Throws:
        `ScmException` - if any
      Since:
        1.3

    - #### changeLog

          ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     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

          ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     ScmBranch branch)
                                       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:
        `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

          ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     String branch,
                                     String datePattern)
                                       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,String)`
      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,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     ScmBranch branch,
                                     String datePattern)
                                       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:
        `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(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     String startTag,
                                     String endTag)
                                       throws ScmException

      Deprecated. you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion)`
      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

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

      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

          ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     String startTag,
                                     String endTag,
                                     String datePattern)
                                       throws ScmException

      Deprecated. you must use `changeLog(org.apache.maven.scm.repository.ScmRepository, org.apache.maven.scm.ScmFileSet,org.apache.maven.scm.ScmVersion,org.apache.maven.scm.ScmVersion,String)`
      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

          ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     ScmVersion startRevision,
                                     ScmVersion endRevision,
                                     String datePattern)
                                       throws ScmException

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

    - #### diff

          DiffScmResult diff(ScmRepository scmRepository,
                           ScmFileSet scmFileSet,
                           String startRevision,
                           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,
                               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,
                               String tag,
                               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,
                               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,
                               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

      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

    - #### tag

          TagScmResult tag(ScmRepository repository,
                         ScmFileSet fileSet,
                         String tagName,
                         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,
                         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,
                               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,
                               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,
                               String tag,
                               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,
                               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,
                               String tag,
                               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,
                               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,
                               String tag,
                               Date lastUpdate,
                               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,
                               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

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

Copyright © 2003–2015. All rights reserved.