[ https://issues.apache.org/jira/browse/SCM-381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17964538#comment-17964538 ]
Olivier Lamy commented on SCM-381: ---------------------------------- This project has moved from Jira to GitHub Issues. This issue was migrated to [apache/maven-scm#595|https://github.com/apache/maven-scm/issues/595]. > Extend API to support remote commands like rlist, rlog > ------------------------------------------------------ > > Key: SCM-381 > URL: https://issues.apache.org/jira/browse/SCM-381 > Project: Maven SCM (Moved to GitHub Issues) > Issue Type: New Feature > Components: maven-scm-api > Affects Versions: 1.13.0 > Reporter: Sergey Zakusov > Priority: Major > > 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 was sent by Atlassian Jira (v8.20.10#820010)