Sandy Currier Release Engineering Inc.


Release Engineering Inc. provides exceptional SCM and release engineering consulting services.  We have extensive experience in all aspects of software manufacturing, including SCM tool selection and roll-out, bug tracking, and releasing and installation process design. We also customize Parallel Software Development Environments for our clients by determining the necessary 'glue' and tooling to efficiently support developer innovation and management control, even when the best fit is a function of codeline lifecycle. 

We offer solid, proven expertise in Perforce, ClearCase, TrueChange, and CVS.  We also have capabilities in other infrastructure tools such as clearmake and gmake (having successfully implemented both recursive and non-recursive build systems). 

Our Perforce installations have ranged from 10 to ~350 developers (licenses).  We have used Perforce to roll-out and manage multi-million dollar web sites (development as well as content deployment) and 24/7 mission critical commerce applications.  We also use Perforce as our own in-house SCM tool and to manage our web site.

In addition to our consulting services, Release Engineering produces ReleasePro™, an innovative release engineering tool used to automate the release engineering process. Release Engineering Inc. specializes in the art and science of SCM.

Perforce Stuff

Here are some interesting scripts and things (mostly distributed under the GNU G.P.L.).  Specifying a '-h' switch will print a help message.  These scripts have already been placed in the Perforce public depot at //guest/sandy_currier/utils/*
//guest/sandy_currier/p4filter/... A way of stitching ssd and sshd into the Perforce client/server connection.  This will convert the standard Perforce client/server connection into a fully encrypted and secure ssh/sshd connection.  This without port forwarding (which is not secure) but with Perforce user-id verification via ssh private key authentication.  Note: I did not write this - the credit needs to go to David Maze. Will revert a specific change. Edits will be reverted, deleted files will be added, and added files, if not yet modified, will be deleted.  Will print some statistics, and will leave everything in the default changelist for a manual submit. Can be used to either re-connect a disconnected client or import a new version of a software package (or any set of files).  Will 'p4 edit' files that are different from the last sync; will 'p4 add' new files; and will 'p4 delete' missing files.  Each one of the three actions can be toggled off or on on the command line via switches (like -diffck e will only perform the edit check).  Will leave everything in the default changelist for a manual submit. Will add label information to the output of a 'p4 filelog' command.  Unfortunately, this command as implemented takes a while to load the information, and may take a longer while if run over a phone line.  Will handle the -i switch to filelog if set. A perl wrapper around the p4 submit command that disables the pop-up form feature of p4 submit. uses STDIN/STDOUT, but also accepts a -f switch (force) so that no user input is required.  In most cases requires a single argument - the checkin description.  Knows how to deal with numbered changelists and supports regular expression matching/filtering for the files to be submitted.  This perl source is also an example of how to drive perforce command that normally requires user intervention via a script. A perl script to save off either client, label, or branch metadata.  A single argument is required, either the name of the client spec, the label name, or the branch spec name. will save off the 'form' info of the metadata as well as the 'have' table for either label or client specs.  The 'have' table is those file/revisions pairs currently catolgued by either the client spec or the label.  All metadata is currently stored to //depot/metadata/[labels,clients,branches,admin].  Specify the '-h' option to for more detail.  Type p4 files //depot/metadata/... to see what metadata has already been saved.

As an example, to recover the have table of a saved version of the sandy_whitepine client, just p4 -x <local path to workspace>/depot/metadata/clients/sandy_whitepine.have sync, and the current perforce client will be sync'ed the files that were sync'ed by the client sandy_whitepine when it was last saved.

The point of this command is twofold: 1) to secure forever the contents of either a label, client, or branch spec as it is defined at a certain time (now); 2) to be able delete old labels, clients, and branch specs that are no longer actively used but still important. : NOTE: even locked labels can be moved.  Saving off a label effectively versions the label (the metadata).


Release Engineering Inc.
265 Davis Road
Bedford, MA 01730-1515 USA
Telephone: 781.710.2038

Back to the Perforce Certified Partners Directory