[ http://jira.codehaus.org/browse/SCM-257?page=comments#action_81936 ] 
            
Dana Lacoste commented on SCM-257:
----------------------------------

Although persist.checkout will work for keeping a clientspec persistent (after 
the checkout command runs), it won't allow for using an existing clientspec in 
that same checkout command.

In other words, if I want to use a clientspec that's already defined, 
maven.scm.perforce.clientspec.name=<clientspec-name> will definitely work, but 
executeCheckOutCommand() will (in the first try {} block) delete that 
clientspec with its "p4 client -i" command.

So the test fails at step 4 above.

> The perforce provider should provide an "update" functionality for the SCM 
> plugin's "update" command that is semantically correct.
> ----------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: SCM-257
>                 URL: http://jira.codehaus.org/browse/SCM-257
>             Project: Maven SCM
>          Issue Type: Improvement
>          Components: maven-scm-provider-perforce
>         Environment: All OS, maven 2.x SCM plugin linked to perforce
>            Reporter: Dana Lacoste
>
> The perforce provider implements the update command as a checkout.
> This is not semantically correct in the following situations:
> 1 - If no changes are pending, the update command should not do anything
> 2 - If some files are changed, only those files should be updated.
> (The checkout command checks out all files, regardless of what already exists)
> This is particularly daunting if (in my case :) there is a very large 
> directory structure in perforce that does not change regularly (checking out 
> a 4GB fileset that hasn't changed is, effectively, wasted time.)
> (As this is my first time using JIRA feel free to correct any of the settings 
> I've made)
> Testing info:
> Although I don't have any JUnit experience, a test case can be made simply:
> 1 - create a perforce repository with two files in it (and configure maven to 
> use it)
> 2 - run "mvn scm:checkout" to obtain the files
> 3 - modify one of the files on another system, check the modified file into 
> perforce
> 4 - run "mvn scm:update" and only the modified file should be checked out.
> Implementation Ideas:
> Somehow the "scm:update" command will need to know that the files already 
> exist.  The most simple way is to require that ${P4CLIENT} be set and simply 
> to run "p4 sync ..." in the directory involved (or, similarly, "p4 sync 
> ${path}..." using the path that's defined in the scm URL) and to allow 
> perforce to do the work of figuring out what's needed.

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