[ https://issues.apache.org/jira/browse/SCM-257?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17964414#comment-17964414 ]
Olivier Lamy commented on SCM-257: ---------------------------------- This project has moved from Jira to GitHub Issues. This issue was migrated to [apache/maven-scm#473|https://github.com/apache/maven-scm/issues/473]. > The perforce provider should provide an "update" functionality for the SCM > plugin's "update" command that is semantically correct. > ---------------------------------------------------------------------------------------------------------------------------------- > > Key: SCM-257 > URL: https://issues.apache.org/jira/browse/SCM-257 > Project: Maven SCM (Moved to GitHub Issues) > Issue Type: Improvement > Components: maven-scm-provider-perforce > Environment: All OS, maven 2.x SCM plugin linked to perforce > Reporter: Dana Lacoste > Priority: Major > > 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 was sent by Atlassian Jira (v8.20.10#820010)