[ 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