[ 
https://jira.codehaus.org/browse/SCM-381?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=297005#comment-297005
 ] 

Chris Graham commented on SCM-381:
----------------------------------

Wouldn't this be best served by implementing a provider that implements all of 
it's API's as implicit remote operations?
Not by changing the API.

EG, when implementing the list API, it's implementation can do what you suggest 
in the rlist api above.

I've just exactly that. It all depends on what your definition of 'working 
copy' is. If you define it as the remote copy, then you should be fine. I had 
to do something similar when implementing the Jazz provider. I was always 
having to stop and ask myself "What is the WC?"

                
> Extend API to support remote commands like rlist, rlog
> ------------------------------------------------------
>
>                 Key: SCM-381
>                 URL: https://jira.codehaus.org/browse/SCM-381
>             Project: Maven SCM
>          Issue Type: New Feature
>          Components: maven-scm-api
>    Affects Versions: 1.x
>            Reporter: Sergey Zakusov
>             Fix For: future
>
>
> 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, please contact your JIRA administrators: 
https://jira.codehaus.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to