<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<title>Sandy Currier Perforce Consulting Partner</title>
</head>
<a href="http://www.perforce.com/perforce/partners.html"> <img
src="http://www.perforce.com/images/pcplogo.gif" border=none></a> <a
href="http://www.releng.com"><img
SRC="http://www.releng.com/rel.gif" BORDER=0></a>
<h3>Sandy Currier
<a href="http://www.releng.com">Release Engineering Inc.</A>
</h3>
<h4>Introduction</h4>
<p>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.
<p>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).
<p>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.
<p>In addition to our consulting services, Release Engineering produces <a
href="http://www.releng.com/products.html">ReleasePro™</a>, an innovative
release engineering tool used to automate the release engineering process.
Release Engineering Inc. specializes in the art and science of SCM.
<h4>Perforce Stuff</h4> <p>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/*
<table BORDER=1 WIDTH="100%">
<tr>
<td>Script/Application</td><td>Description</td>
</tr>
<tr><td>//guest/sandy_currier/p4filter/...</td>
<td>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.
</td></tr>
<tr>
<td><a href="utils/p4revert.pl">p4revert.pl</a></td>
<td>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.</td>
</tr>
<tr>
<td><a href="utils/p4import.pl">p4import.pl</a></td>
<td>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.</td>
</tr>
<tr>
<td><a href="utils/p4vtree.pl">p4vtree.pl</a></td>
<td>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.</td>
</tr>
<tr>
<td><a href="utils/p4submit.pl">p4submit.pl</a></td>
<td>A perl wrapper around the <b>p4 submit</b> command that disables the pop-up
form feature of <b>p4 submit</b>. p4submit.pl 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.</td>
</tr>
<tr>
<td><a href="utils/p4save.pl">p4save.pl</a></td>
<td>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. p4save.pl 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
<b>//depot/metadata/[labels,clients,branches,admin]</b>.  Specify the '-h'
option to p4save.pl for more detail. Type <b>p4 files
//depot/metadata/...</b> to see what metadata has already been saved.
<p>As an example, to recover the have table of a saved version of the
sandy_whitepine client, just <b>p4 -x <local path to
workspace>/depot/metadata/clients/sandy_whitepine.have sync</b>, 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.
<p>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).
</td>
</tr>
</table>
<p><b>Contact:</b>
<center><table cellpadding="20"><tr><td>
Release Engineering Inc.<br>
265 Davis Road<br>Bedford, MA 01730-1515 USA</td><td>
<a href="http://www.releng.com/">www.releng.com</a><br>
Telephone: 781.710.2038<br>
E-mail: <a href="mailto:info@releng.com">info@releng.com</a></font>
</td></tr></table></center>
<hr>Back to the <a href="http://www.perforce.com/perforce/partlist.html">Perforce
Certified Partners Directory</a>
</body>
</html>