Extend API to support remote commands like rlist, rlog
------------------------------------------------------
Key: SCM-381
URL: http://jira.codehaus.org/browse/SCM-381
Project: Maven SCM
Issue Type: New Feature
Components: maven-scm-api
Affects Versions: 1.x
Reporter: Sergey Zakusov
We propose to extend the existing API to support some remote commands - it's a
really required feature to allow work with SCMs without Working Copies.
For a start there should be done the following commands:
# *rlist* - to list remotely repository entries;
# *rinfo* - to get information about repository entries;
# *rlog* - to get change log of repository entries;
# *rcat* - to get file contents remotely.
It can be specified as a new interface extended from ScmManager:
{code:title=ScmRemoteManager.java|bolderStyle=solid}
public interface ScmRemoteManager extends ScmManager {
/**
* Lists remotely each element specified by <B>i_fileSet</B> in the
repository.
*
* @param i_repository the source control system to use
* @param i_fileSet the entries (files and/or directories) to list
* @param i_recursive descend recursively
* @param i_version use the version defined by the branch/tag/revision
* @return The list of entries in the repository
* @throws ScmException if the command cannot be performed
* @see ScmManager#list(ScmRepository, ScmFileSet, boolean, ScmVersion) to
work with Working Copy
*/
ListScmResult rlist(ScmRepository i_repository, ScmFileSet i_fileSet,
boolean i_recursive, ScmVersion i_version)
throws ScmException;
/**
* Retrieves information about each remote element specified by
<B>i_fileSet</B>.
*
* @param i_repository the source control system to use
* @param i_fileSet the entries (files and/or directories) to get
information
* @param i_version the branch/tag/revision to use
* @return Information about each requested entry from the repository
* @throws ScmException if the command cannot be performed
*/
InfoScmResult rinfo(ScmRepository i_repository, ScmFileSet i_fileSet,
ScmVersion i_version) throws ScmException;
/**
* Retrieves log information about each remote element specified by
<B>i_fileSet</B>.
*
* @param i_repository the source control system to use
* @param i_fileSet the entries (files and/or directories) to get
information
* @param i_startVersion the start branch/tag/revision
* @param i_endVersion the end branch/tag/revision
* @return Log information about each requested entry from the repository
* @throws ScmException if the command cannot be performed
* @see ScmManager#changeLog(ScmRepository, ScmFileSet, ScmVersion,
ScmVersion) to work with Working Copy
*/
ChangeLogScmResult rlog(ScmRepository i_repository, ScmFileSet i_fileSet,
ScmVersion i_startVersion,
ScmVersion i_endVersion) throws ScmException;
/**
* Fetches the contents and/or properties of each remote element specified
by <B>i_fileSet</B>.
*
* @param i_repository the source control system to use
* @param i_fileSet the files to get content
* @param i_version the branch/tag/revision to use
* @return Contents and/or properties of each requested file from the
repository
* @throws ScmException if the command cannot be performed
*/
CatScmResult rcat(ScmRepository i_repository, ScmFileSet i_fileSet,
ScmVersion i_version) throws ScmException;
}
{code}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira