You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Brian Jackson (JIRA)" <ji...@codehaus.org> on 2007/07/19 18:59:13 UTC

[jira] Commented: (SCM-258) The perforce provider should be able to accept complex filespecs using a clientspec rather than the path in the SCM url

    [ http://jira.codehaus.org/browse/SCM-258?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_102717 ] 

Brian Jackson commented on SCM-258:
-----------------------------------

I'm now also running into the problem that the plugin overwrites the existing clientspec (seemingly during release only?)  If I set maven.scm.persistcheckout, will that prevent it from overwriting the existing clientspec?

> The perforce provider should be able to accept complex filespecs using a clientspec rather than the path in the SCM url
> -----------------------------------------------------------------------------------------------------------------------
>
>                 Key: SCM-258
>                 URL: http://jira.codehaus.org/browse/SCM-258
>             Project: Maven SCM
>          Issue Type: Improvement
>          Components: maven-scm-provider-perforce
>         Environment: All OS, Maven 2.x using the SCM plugin to talk to perforce
>            Reporter: Dana Lacoste
>             Fix For: future
>
>
> One of the strengths of perforce is the ability to do fairly complex actions with the clientspec.
> For example:
> 1 - Checkout two file structures into one location:
>     //depot1/tree1/...  //client/project/tree1
>     //depot2/tree2/...  //client/project/tree2
> 2 - Rename file structures at checkout time :
>     //depot/tree/sample-configuration.xml  //client/tree/configuration.xml
> The SCM URL format doesn't allow this (and implementing it would be difficult)
> Currently, the perforce provider doesn't seem to allow a way to use an existing clientspec (all codepaths seem to create a new clientspec based on the URL)
> If the provider could allow an existing clientspec to define the file structure, this functionality could be enabled.
> Testing:
> I don't have any JUnit experience, but I think this could be tested by:
> 1 - Create a clientspec that defines some complex content, for example:
>     //depot/project/src/...   //clientspec/project/src/...
>     //ThirdParty/...  //clientspec/project/ThirdParty/...
> 2 - run "mvn scm:checkout" and all files should be checked out.
> Implementation Ideas:
> I can see multiple ways of doing this, depending on the restrictions/conventions required
> A - Use the existing "bootstrap/target/checkout" dynamic directory structure
>       - Using "p4 client -o" with the given/predefined/assumed clientspec, alter the p4_root  (the line containing "Root:") and do a "p4 sync -f"
>        (Definition of the clientspec ideas defined separately below)
> B - Assume the clientspec has a defined "Root:" and use that for the purposes of "locating" files (needed for tag/editing/checkin purposes)
>     - As I'm only checking out, I really don't know how this would affect a checkin :)
> C - Separate from above, how to define which clientspec to use:
>     - In the SCM URL, perhaps with scm:perforce:[username@]host:port:@clientspec_name
>       (the second @ being a placeholder for a delimiter)
>     - As an environment variable (perhaps the existing maven.scm.perforce.clientspec.name,
>       enabling this functionality (re-use vs. re-create) with a different property
>     - Defined in the settings.xml or in the pom.xml in the SCM configuration properties
> I'm sure more details will be required, this is only what I've identified within my particular situation.

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