History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: SCM-221
Type: Bug Bug
Status: Closed Closed
Resolution: Won't Fix
Priority: Critical Critical
Assignee: Mike Perham
Reporter: Yuri Schimke
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Maven SCM

scm:update has no effect

Created: 18/Jul/06 05:12 AM   Updated: 15/Aug/06 02:48 AM
Component/s: maven-scm-provider-perforce
Affects Version/s: 1.0-beta-4
Fix Version/s: 1.0-beta-4

Time Tracking:
Not Specified

Environment:

Complexity: Intermediate


 Description  « Hide
We are trying to use scm:update in a cruisecontrol build to update the project before building. However it doesn't seem to actually write any changes to disk.

The command completes successfully, but the files are not synced to head. The directory for the update is a working perforce directory. i.e. after the command below fails to update the files, "p4 sync" works immediately.

[INFO] [scm:update]
[INFO] Checkout working directory: C:\PerforceViews\dms_1.2_dev\dms
[INFO] Executing: p4 client -i
[INFO] Executing: p4 client -d nbk7xsp-B001279A7BC2E-MavenSCM-C:\PerforceViews\dms_1.2_dev\dms

Is the generated clientspec just using for determining changesets? There is a valid clientspec already associated with the current project directory.



 All   Comments   Work Log   Change History      Sort Order: Ascending order - Click to sort in descending order
Mike Perham - 18/Jul/06 11:08 AM
In Perforce the checkout and update commands are the same (sync). We use a generated clientspec because we need to check out a project to a specific directory. You cannot check out code to a particular location without using a custom clientspec.

Yuri Schimke - 18/Jul/06 12:18 PM
We are trying to use the perforce support for three things.

1) scm:update in cruisecontrol - must use existing clientspec
2) maven-changelog-plugin - can use either existing or generated clientspec
3) release - must use generated clienspec

1&2 are run in cruise control, 2&3 are run locally. I guess we should set it just for the cruisecontrol box. Is that the idea?


Yuri Schimke - 18/Jul/06 12:24 PM
is maven.scm.persistcheckout the system property to use the existing p4 clientspec

Mike Perham - 18/Jul/06 04:54 PM
There is a parameter where you can override the clientspec for SCM to use. I don't have the source in front of me but if you found the persist parameter, you can find this one too. :-p

persistcheckout would be used with continuum/cruisecontrol so it does not try to force sync a new copy of the code everytime. By persisting the clientspec, it will use the same clientspec the next time also and Perforce will only update changed files. Otherwise, it creates a temp clientspec, checks it out and deletes it afterwards - which can lead to really long checkout times for large projects. Which sucks if you are building every hour!


Mike Perham - 14/Aug/06 10:07 PM
There's no clear issue here so I'm closing this unless you have more specific feedback. The property is "maven.scm.perforce.clientspec.name".

Yuri Schimke - 15/Aug/06 02:48 AM
We are avoiding using scm:update in the cruisecontrol project config. Its easy enough to use the cruisecontrol options, and probably safer since the synced changelist number becomes the build label.