[ http://jira.codehaus.org/browse/SCM-71?page=comments#action_79682 ] 
            
Stephen Connolly commented on SCM-71:
-------------------------------------

The big road-block as I see it is how to integrate AccuRev's 
depot/stream/workspace model with maven's scm model.

the scm ulr should be something like:

scm:accurev:server:port/depot/stream/path_to_module

AccuRev requires that all changes be implemented in a workspace.

We can auto discover the workspace once we know what host we are on and the 
server/depot/stream details.

We can force the user to create the workspace for themselves to prevent 
accumulation of temporary workspaces and the cluttering up of the stream 
namespace (all streams must have a unique name, and workspaces are also 
streams. you cannot delete streams, only hide them, so a temporary workspace 
will not do)

The workspace is rooted at scm:accurev:server:port/depot/stream/

so if we have a module that is at

scm:accurev:server:port/depot/main_stream/my_app/my_core/my_module

the workspace will be rooted at, say

c:\workspaces\main_stream_sconnolly\

the pom.xml will be in

c:\workspaces\main_stream_sconnolly\my_app\my_core\my_module\

You cannot put a workspace inside another workspace, so when the release plugin 
tries to check-out a copy of the source tree we will have to move our workspace 
to the directory that the release plugin wants us to check-out into...

release is going to want us to checkout into

c:\workspaces\main_stream_sconnolly\my_app\my_core\my_module\target\temp

so we move the workspace to there, and now we populate only the module we are 
using

accurev pop -R my_app\my_core\my_module

and now we have the clean checked-out pom.xml in

c:\workspaces\main_stream_sconnolly\my_app\my_core\my_module\target\temp\my_app\my_core\my_module

but the release plugin (afaik) is thinking that it's in

c:\workspaces\main_stream_sconnolly\my_app\my_core\my_module\target\temp

I am also unsure where/how to store the state info about the workspace while 
the release plugin is doing it's thing...

i.e.

in order to check-out the tagged module, you need to move the workspace stream 
into the snapshot stream... and when you are finished, you need to move it back 
to where it was before the release plugin runs... (both in terms of the local 
file system base for the workspace, and the accurev stream base for the 
workspace [the stream base will come from the scm url, but the problem lies in 
figuring out which workspace to move back and where it's base will be, i.e. 
should it be c:\workspaces\main_stream_sconnolly\my_app\my_core\ or 
c:\workspaces\main_stream_sconnolly\ if it is not 
c:\workspaces\main_stream_sconnolly\ then we will have problems])

---

This is a note for anybody trying to implement as regards my stumbling blocks.  
unless somebody can see an easy work-around I do not think accurev can be 
integrated with the release plugin.

> Implement accurev provider
> --------------------------
>
>                 Key: SCM-71
>                 URL: http://jira.codehaus.org/browse/SCM-71
>             Project: Maven SCM
>          Issue Type: New Feature
>            Reporter: Emmanuel Venisse
>
> I look at documentation, and it's very easy to do (works like cvs or svn)
> http://www.accurev.com/download/docs/AccuRev_User_CLI.pdf

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

        

Reply via email to