P4 Shelve/Unshelve Utility Last Revision: 11/26/2005 Author: Chris Stoy Send bugs/revisions to Chris Stoy (cstoy@nc.rr.com) INTRODUCTION These scripts provide a means for "shelving" an active changelist, allowing you to work on an unrelated change, then "unshelve" your previous changelist and continue working from there. REQUIREMENTS p4_shelve requires: * Python 2.4 (www.python.org) * P4Python (public.perforce.com/guest/robert_cowham/perforce/API/python/index.html) to build stand-alone executables, you will also need: * py2exe (www.py2exe.org) HOW IT WORKS p4_shelve works by creating a branch in your depot and moving the files in the shelved changelist into that branch. It then reverts the files from your changelist. Files that are marked for add in your changelist are added to the branch, those marked for delete are deleted. This allows us to maintain a revision history for the files in the shelf. p4_unshelve works by doing a reverse integration from the branch spec created by p4_shelve. The integrated files are put into the default changelist. USAGE python p4_shelve.py [options] python p4_unshelve.py [options] For both p4_shelve and p4_unshelve, specify the "-h" or "--help" option to see a detailed list of options for each command. Before you can use p4_shelve, you need a place to put the shelves in your depot. By default, this is //depot/shelves, though you should specify where you want it using the "-s " command line option. p4_shelve creates a new branch spec every time it is run and maps the files from the change list through that branch spec. The name of the branch spec follows the format: shelve___