[ https://issues.jenkins-ci.org/browse/JENKINS-7436?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=158883#comment-158883 ]
Ross Aribi commented on JENKINS-7436: ------------------------------------- I've implemented a solution to enable a user to test builds using a "shelved" changelist if desired. This isn't a plugin, but rather a process incorporated within the build request form in Jenkins (Parameterized build). The Shelving process itself involves the following steps: p4 unshelve -f -s ${SHELVED_CHANGELIST} ${sourceCodePath} p4 revert -k ${sourceCodePath} Where: The -f flag forces the clobbering of any writeable but unopened files that are being unshelved. The -s flag specifies the number of the pending changelist that contains the shelved files. So, my implementation in Jenkins is as follows: 1) Setup a parameterized build template 2) Add a string parameter to the build template and name it something like: SHELEVED_CHANGELIST 3) In the build section (I execute shell), put the following steps in the beginning of your build steps: # Revert previous shelving activities p4 revert ${sourceCodePath} # Unshelve if true if [ $SHELVED_CHANGELIST != "" ] ; then ( echo "User specified a shelved changelist, unshelving changelist ($SHELVED_CHANGELIST)"; p4 unshelve -f -s $SHELVED_CHANGELIST ${sourceCodePath}; ) else ( echo "Not running with a shelved changelist"; ); fi # Now revert unshelve but KEEP the files locally p4 revert -k ${sourceCodePath} That's it. We've been using this solution successfully for about a year now and developers like it. All you need to do is to educate your developers on how to do shelving and create that changelist :) > Add support for perforce shelve builds > -------------------------------------- > > Key: JENKINS-7436 > URL: https://issues.jenkins-ci.org/browse/JENKINS-7436 > Project: Jenkins > Issue Type: New Feature > Components: perforce > Reporter: vbuzzsaw > > It would be really useful if the perforce plugin could add support for > shelving -- Functionality added perforce in version 2009.2. > Here is a good blog writeup --http://blog.perforce.com/blog/?p=1872 > Many things hudson is great for is finding out if anyone "broke" the build by > polling source repositories looking for commits and kicking off builds. But > breaking builds and backing code is a pain sometimes. It would be even > better if you could run a build in hudson BEFORE checking in your changelist > to see if your changelist WOULD break the build and fix problems before they > occur. That is exactly what perforce shelving does -- It allows you to > shelve your changelist -- saving all your modifications to the server > (without committing them), and then allowing others to pull down the shelved > modified code and perform a build. > I'm not sure if the underlying tek42 perforce client library you use supports > shelving, but if so this would be really useful functionality. > Thanks. > Doug -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jenkins-ci.org/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira