Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Auto Closed
-
None
-
None
-
None
-
All OS, maven 2.x SCM plugin linked to perforce
Description
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.