org.apache.maven.scm.provider

## Class AbstractScmProvider

- java.lang.Object
- - org.apache.maven.scm.provider.AbstractScmProvider

- All Implemented Interfaces:
    ScmProvider
  Direct Known Subclasses:
    AbstractCvsScmProvider, AbstractGitScmProvider, AbstractSvnScmProvider, AccuRevScmProvider, BazaarScmProvider, ClearCaseScmProvider, HgScmProvider, LocalScmProvider, PerforceScmProvider, StarteamScmProvider, SynergyScmProvider, TfsScmProvider

      public abstract class AbstractScmProvider
      extends Object
      implements ScmProvider

  Version:
    $Id: AbstractScmProvider.java 892494 2009-12-19 18:40:43Z olamy $
  Author:
    Trygve Laugstøl, Emmanuel Venisse

- - ### Field Summary

    - ### Fields inherited from interface org.apache.maven.scm.provider.ScmProvider

      `ROLE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractScmProvider()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected AddScmResult` | `add(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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.
    `protected BranchScmResult` | `branch(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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, 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)` Branch (or label in some systems) will create a branch of the source file with a certain branch name
    `protected ChangeLogScmResult` | `changelog(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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.
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, Date startDate, Date endDate, int numDays, String branch, String datePattern)` Deprecated.
    `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 startVersion, ScmVersion endVersion, 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.
    `ChangeLogScmResult` | `changeLog(ScmRepository repository, ScmFileSet fileSet, String startTag, String endTag, String datePattern)` Deprecated.
    `protected CheckInScmResult` | `checkin(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `CheckInScmResult` | `checkIn(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, 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.
    `protected CheckOutScmResult` | `checkout(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet)` Create a copy of the repository on your local machine
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, boolean recursive)` Create a copy of the repository on your local machine.
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion)` Create a copy of the repository on your local machine
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, boolean recursive)` Create a copy of the repository on your local machine.
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, String tag)` Deprecated.
    `CheckOutScmResult` | `checkOut(ScmRepository repository, ScmFileSet fileSet, String tag, boolean recursive)` Deprecated.
    `protected DiffScmResult` | `diff(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `DiffScmResult` | `diff(ScmRepository repository, ScmFileSet fileSet, ScmVersion startVersion, ScmVersion endVersion)` Create a diff between two branch/tag/revision.
    `DiffScmResult` | `diff(ScmRepository repository, ScmFileSet fileSet, String startRevision, String endRevision)` Deprecated.
    `protected EditScmResult` | `edit(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `EditScmResult` | `edit(ScmRepository repository, ScmFileSet fileSet)` Make a file editable.
    `protected ExportScmResult` | `export(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `ExportScmResult` | `export(ScmRepository repository, ScmFileSet fileSet)` Create an exported copy of the repository on your local machine
    `ExportScmResult` | `export(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion)` Create an exported copy of the repository on your local machine
    `ExportScmResult` | `export(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, String outputDirectory)` Create an exported copy of the repository on your local machine
    `ExportScmResult` | `export(ScmRepository repository, ScmFileSet fileSet, String tag)` Deprecated.
    `ExportScmResult` | `export(ScmRepository repository, ScmFileSet fileSet, String tag, String outputDirectory)` Deprecated.
    `ScmLogger` | `getLogger()`
    `String` | `getScmSpecificFilename()` Returns the scm reserved file name where the SCM stores information like 'CVS', '.svn'.
    `protected ListScmResult` | `list(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)` List each element (files and directories) of fileSet as they exist in the repository.
    `ListScmResult` | `list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, ScmVersion scmVersion)` List each element (files and directories) of fileSet as they exist in the repository.
    `ListScmResult` | `list(ScmRepository repository, ScmFileSet fileSet, boolean recursive, String tag)` List each element (files and directories) of fileSet as they exist in the repository.
    `protected LoginScmResult` | `login(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `ScmProviderRepository` | `makeProviderScmRepository(File path)`
    `protected RemoveScmResult` | `remove(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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.
    `protected StatusScmResult` | `status(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `StatusScmResult` | `status(ScmRepository repository, ScmFileSet fileSet)` Returns the status of the files in the source control system.
    `protected TagScmResult` | `tag(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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, 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)` Tag (or label in some systems) will tag the source file with a certain tag
    `protected UnEditScmResult` | `unedit(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `UnEditScmResult` | `unedit(ScmRepository repository, ScmFileSet fileSet)` Make a file no longer editable.
    `protected UpdateScmResult` | `update(ScmProviderRepository repository, ScmFileSet fileSet, CommandParameters parameters)`
    `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 scmVersion)` Updates the copy on the local machine with the changes in the repository
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, boolean runChangelog)` Updates the copy on the local machine with the changes in the repository
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, Date lastUpdate)` Updates the copy on the local machine with the changes in the repository
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, Date lastUpdate, String datePattern)` Updates the copy on the local machine with the changes in the repository
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, ScmVersion scmVersion, String datePattern)` Updates the copy on the local machine with the changes in the repository
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, String tag)` Deprecated.
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, String tag, boolean runChangelog)` Deprecated.
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate)` Deprecated.
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, String tag, Date lastUpdate, String datePattern)` Deprecated.
    `UpdateScmResult` | `update(ScmRepository repository, ScmFileSet fileSet, String tag, String datePattern)` Deprecated.
    `List` | `validateScmUrl(String scmSpecificUrl, char delimiter)` Validate the scm url.
    `boolean` | `validateTagName(String tag)` Check if this tag is valid for this SCM provider.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

    - ### Methods inherited from interface org.apache.maven.scm.provider.ScmProvider

      `getScmType, makeProviderScmRepository`

- - ### Constructor Detail

    - #### AbstractScmProvider

          public AbstractScmProvider()

  - ### Method Detail

    - #### getScmSpecificFilename

          public String getScmSpecificFilename()

      Returns the scm reserved file name where the SCM stores information like 'CVS', '.svn'.
      Specified by:
        `getScmSpecificFilename` in interface `ScmProvider`
      Returns:
        the scm reserved file name

    - #### sanitizeTagName

          public String sanitizeTagName(String tag)

      Given a tag name, make it suitable for this SCM provider. For example, CVS converts "." into "_"
      Specified by:
        `sanitizeTagName` in interface `ScmProvider`
      Parameters:
        `tag` - input tag name
      Returns:
        sanitized tag name

    - #### validateTagName

          public boolean validateTagName(String tag)

      Check if this tag is valid for this SCM provider.
      Specified by:
        `validateTagName` in interface `ScmProvider`
      Parameters:
        `tag` - tag name to check
      Returns:
        true if tag is valid

    - #### validateScmUrl

          public List validateScmUrl(String scmSpecificUrl,
                            char delimiter)

      Validate the scm url.
      Specified by:
        `validateScmUrl` in interface `ScmProvider`
      Parameters:
        `scmSpecificUrl` - The SCM url
        `delimiter` - The delimiter used in the SCM url
      Returns:
        Returns a list of messages if the validation failed

    - #### requiresEditMode

          public boolean requiresEditMode()

      Specified by:
        `requiresEditMode` in interface `ScmProvider`

    - #### add

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

      Adds the given files to the source control system
      Specified by:
        `add` in interface `ScmProvider`
      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

          public AddScmResult add(ScmRepository repository,
                         ScmFileSet fileSet,
                         String message)
                           throws ScmException

      Adds the given files to the source control system
      Specified by:
        `add` in interface `ScmProvider`
      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

          protected AddScmResult add(ScmProviderRepository repository,
                         ScmFileSet fileSet,
                         CommandParameters parameters)
                              throws ScmException

      Throws:
        `ScmException`

    - #### branch

          public 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
      Specified by:
        `branch` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `branch` in interface `ScmProvider`
      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

          public BranchScmResult branch(ScmRepository repository,
                               ScmFileSet fileSet,
                               String branchName,
                               ScmBranchParameters scmBranchParameters)
                                 throws ScmException

      Description copied from interface: `ScmProvider`
      Branch (or label in some systems) will create a branch of the source file with a certain branch name
      Specified by:
        `branch` in interface `ScmProvider`
      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

          protected BranchScmResult branch(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### changeLog

          public ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     String branch)
                                       throws ScmException

      Deprecated.
      Returns the changes that have happend in the source control system in a certain period of time. This can be adding, removing, updating, ... of files
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

          public ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     Date startDate,
                                     Date endDate,
                                     int numDays,
                                     String branch,
                                     String datePattern)
                                       throws ScmException

      Deprecated.
      Returns the changes that have happend in the source control system in a certain period of time. This can be adding, removing, updating, ... of files
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

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

      Deprecated.
      Returns the changes that have happend in the source control system between two tags. This can be adding, removing, updating, ... of files
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

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

      Deprecated.
      Returns the changes that have happend in the source control system between two tags. This can be adding, removing, updating, ... of files
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `changeLog` in interface `ScmProvider`
      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

          public ChangeLogScmResult changeLog(ScmRepository repository,
                                     ScmFileSet fileSet,
                                     ScmVersion startVersion,
                                     ScmVersion endVersion,
                                     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
      Specified by:
        `changeLog` in interface `ScmProvider`
      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 revision
        `endVersion` - the end revision
        `datePattern` - the date pattern use in changelog output returned by scm tool
      Returns:
      Throws:
        `ScmException` - if any

    - #### changelog

          protected ChangeLogScmResult changelog(ScmProviderRepository repository,
                                     ScmFileSet fileSet,
                                     CommandParameters parameters)
                                          throws ScmException

      Throws:
        `ScmException`

    - #### checkIn

          public CheckInScmResult checkIn(ScmRepository repository,
                                 ScmFileSet fileSet,
                                 String tag,
                                 String message)
                                   throws ScmException

      Deprecated.
      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.
      Specified by:
        `checkIn` in interface `ScmProvider`
      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

          public 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.
      Specified by:
        `checkIn` in interface `ScmProvider`
      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

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

    - #### checkin

          protected CheckInScmResult checkin(ScmProviderRepository repository,
                                 ScmFileSet fileSet,
                                 CommandParameters parameters)
                                      throws ScmException

      Throws:
        `ScmException`

    - #### checkOut

          public CheckOutScmResult checkOut(ScmRepository repository,
                                   ScmFileSet fileSet,
                                   String tag)
                                     throws ScmException

      Deprecated.
      Create a copy of the repository on your local machine
      Specified by:
        `checkOut` in interface `ScmProvider`
      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

          public CheckOutScmResult checkOut(ScmRepository repository,
                                   ScmFileSet fileSet,
                                   String tag,
                                   boolean recursive)
                                     throws ScmException

      Deprecated.
      Create a copy of the repository on your local machine.
      Specified by:
        `checkOut` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - 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

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

      Create a copy of the repository on your local machine
      Specified by:
        `checkOut` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
      Returns:
      Throws:
        `ScmException` - if any

    - #### checkOut

          public CheckOutScmResult checkOut(ScmRepository repository,
                                   ScmFileSet fileSet,
                                   ScmVersion scmVersion)
                                     throws ScmException

      Create a copy of the repository on your local machine
      Specified by:
        `checkOut` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `scmVersion` - get the version defined by the revision, branch or tag
      Returns:
      Throws:
        `ScmException` - if any

    - #### checkOut

          public CheckOutScmResult checkOut(ScmRepository repository,
                                   ScmFileSet fileSet,
                                   boolean recursive)
                                     throws ScmException

      Create a copy of the repository on your local machine.
      Specified by:
        `checkOut` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `recursive` - whether to check out recursively
      Returns:
      Throws:
        `ScmException` - if any

    - #### checkOut

          public CheckOutScmResult checkOut(ScmRepository repository,
                                   ScmFileSet fileSet,
                                   ScmVersion scmVersion,
                                   boolean recursive)
                                     throws ScmException

      Create a copy of the repository on your local machine.
      Specified by:
        `checkOut` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `scmVersion` - get the version defined by the revision, branch or tag
        `recursive` - whether to check out recursively
      Returns:
      Throws:
        `ScmException` - if any

    - #### checkout

          protected CheckOutScmResult checkout(ScmProviderRepository repository,
                                   ScmFileSet fileSet,
                                   CommandParameters parameters)
                                        throws ScmException

      Throws:
        `ScmException`

    - #### diff

          public DiffScmResult diff(ScmRepository repository,
                           ScmFileSet fileSet,
                           String startRevision,
                           String endRevision)
                             throws ScmException

      Deprecated.
      Create a diff between two branch/tag/revision.
      Specified by:
        `diff` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `startRevision` - the start revision
        `endRevision` - the end revision
      Returns:
      Throws:
        `ScmException` - if any

    - #### diff

          public DiffScmResult diff(ScmRepository repository,
                           ScmFileSet fileSet,
                           ScmVersion startVersion,
                           ScmVersion endVersion)
                             throws ScmException

      Create a diff between two branch/tag/revision.
      Specified by:
        `diff` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - 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

    - #### diff

          protected DiffScmResult diff(ScmProviderRepository repository,
                           ScmFileSet fileSet,
                           CommandParameters parameters)
                                throws ScmException

      Throws:
        `ScmException`

    - #### edit

          public 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.
      Specified by:
        `edit` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files to make editable
      Returns:
      Throws:
        `ScmException` - if any

    - #### edit

          protected EditScmResult edit(ScmProviderRepository repository,
                           ScmFileSet fileSet,
                           CommandParameters parameters)
                                throws ScmException

      Throws:
        `ScmException`

    - #### export

          public ExportScmResult export(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag)
                                 throws ScmException

      Deprecated.
      Create an exported copy of the repository on your local machine
      Specified by:
        `export` in interface `ScmProvider`
      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

          public ExportScmResult export(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag,
                               String outputDirectory)
                                 throws ScmException

      Deprecated.
      Create an exported copy of the repository on your local machine
      Specified by:
        `export` in interface `ScmProvider`
      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

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

      Create an exported copy of the repository on your local machine
      Specified by:
        `export` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
      Returns:
      Throws:
        `ScmException` - if any

    - #### export

          public ExportScmResult export(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion)
                                 throws ScmException

      Create an exported copy of the repository on your local machine
      Specified by:
        `export` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `scmVersion` - get the version defined by the branch/tag/revision
      Returns:
      Throws:
        `ScmException` - if any

    - #### export

          public ExportScmResult export(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion,
                               String outputDirectory)
                                 throws ScmException

      Create an exported copy of the repository on your local machine
      Specified by:
        `export` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files are copied to the `ScmFileSet.getBasedir()` location
        `scmVersion` - get the version defined by the branch/tag/revision
        `outputDirectory` - the directory where the export will be stored
      Returns:
      Throws:
        `ScmException` - if any

    - #### export

          protected ExportScmResult export(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### list

          public ListScmResult list(ScmRepository repository,
                           ScmFileSet fileSet,
                           boolean recursive,
                           String tag)
                             throws ScmException

      List each element (files and directories) of fileSet as they exist in the repository.
      Specified by:
        `list` in interface `ScmProvider`
      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

          public ListScmResult list(ScmRepository repository,
                           ScmFileSet fileSet,
                           boolean recursive,
                           ScmVersion scmVersion)
                             throws ScmException

      List each element (files and directories) of fileSet as they exist in the repository.
      Specified by:
        `list` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files to list
        `recursive` - descend recursively
        `scmVersion` - use the version defined by the branch/tag/revision
      Returns:
        the list of files in the repository
      Throws:
        `ScmException` - if any

    - #### list

          protected ListScmResult list(ScmProviderRepository repository,
                           ScmFileSet fileSet,
                           CommandParameters parameters)
                                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
        `parameters` -
      Returns:
        The list of files in the repository
      Throws:
        `NoSuchCommandScmException` - unless overriden by subclass
        `ScmException` - if any

    - #### login

          protected LoginScmResult login(ScmProviderRepository repository,
                             ScmFileSet fileSet,
                             CommandParameters parameters)
                                  throws ScmException

      Throws:
        `ScmException`

    - #### remove

          public RemoveScmResult remove(ScmRepository repository,
                               ScmFileSet fileSet,
                               String message)
                                 throws ScmException

      Removes the given files from the source control system
      Specified by:
        `remove` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files to be removed
      Returns:
      Throws:
        `ScmException` - if any

    - #### remove

          protected RemoveScmResult remove(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### status

          public 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.
      Specified by:
        `status` in interface `ScmProvider`
      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

    - #### status

          protected StatusScmResult status(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### tag

          public 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
      Specified by:
        `tag` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `tag` in interface `ScmProvider`
      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

          public 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
      Specified by:
        `tag` in interface `ScmProvider`
      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

    - #### tag

          protected TagScmResult tag(ScmProviderRepository repository,
                         ScmFileSet fileSet,
                         CommandParameters parameters)
                              throws ScmException

      Throws:
        `ScmException`

    - #### unedit

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

      Make a file no longer editable. This is the conterpart of `ScmProvider.edit( org.apache.maven.scm.repository.ScmRepository,org.apache.maven.scm.ScmFileSet)`. It makes the file read-only again.
      Specified by:
        `unedit` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - the files to make uneditable
      Returns:
      Throws:
        `ScmException` - if any

    - #### unedit

          protected UnEditScmResult unedit(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### update

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag)
                                 throws ScmException

      Deprecated.
      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag,
                               boolean runChangelog)
                                 throws ScmException

      Deprecated.
      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

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

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
      Returns:
      Throws:
        `ScmException` - if any

    - #### update

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
        `scmVersion` - use the version defined by the branch/tag/revision
      Returns:
      Throws:
        `ScmException` - if any

    - #### update

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               boolean runChangelog)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion,
                               boolean runChangelog)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
        `scmVersion` - use the version defined by the branch/tag/revision
        `runChangelog` - Run the changelog command after the update
      Returns:
      Throws:
        `ScmException` - if any

    - #### update

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag,
                               String datePattern)
                                 throws ScmException

      Deprecated.
      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion,
                               String datePattern)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
        `scmVersion` - 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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag,
                               Date lastUpdate)
                                 throws ScmException

      Deprecated.
      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion,
                               Date lastUpdate)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
        `scmVersion` - use the version defined by the branch/tag/revision
      Returns:
      Throws:
        `ScmException` - if any

    - #### update

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               String tag,
                               Date lastUpdate,
                               String datePattern)
                                 throws ScmException

      Deprecated.
      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      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

          public UpdateScmResult update(ScmRepository repository,
                               ScmFileSet fileSet,
                               ScmVersion scmVersion,
                               Date lastUpdate,
                               String datePattern)
                                 throws ScmException

      Updates the copy on the local machine with the changes in the repository
      Specified by:
        `update` in interface `ScmProvider`
      Parameters:
        `repository` - the source control system
        `fileSet` - location of your local copy
        `scmVersion` - 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

    - #### update

          protected UpdateScmResult update(ScmProviderRepository repository,
                               ScmFileSet fileSet,
                               CommandParameters parameters)
                                    throws ScmException

      Throws:
        `ScmException`

    - #### addListener

          public void addListener(ScmLogger logger)

      Add a logger listener.
      Specified by:
        `addListener` in interface `ScmProvider`
      Parameters:
        `logger` - The logger

    - #### getLogger

          public ScmLogger getLogger()

    - #### makeProviderScmRepository

          public ScmProviderRepository makeProviderScmRepository(File path)
                                                          throws ScmRepositoryException,
                                                                 UnknownRepositoryStructure

      Specified by:
        `makeProviderScmRepository` in interface `ScmProvider`
      Throws:
        `ScmRepositoryException`
        `UnknownRepositoryStructure`

Copyright © 2003–2015. All rights reserved.