<HTML> <HEAD> <TITLE> Utilities Project - Perforce Public Depot </TITLE> </HEAD> <BODY BGCOLOR="#FFFFFF"> <CENTER> <P> <A NAME="toc"></A> <h2> <sub><a href="../../index.html">Perforce Public Depot</a></sub><br> Perforce Utilities Project <br> </H2> <P> <TABLE BORDER=0> <TR> <TD VALIGN=TOP> <B> <UL> <LI><A HREF="#about">About This Project </A> <LI><A HREF="#browsers">Depot Browsers </A> <LI><A HREF="#convert">Conversion Scripts </A> <LI><A HREF="#daemons">Review Daemons </A> </UL> <TD VALIGN=TOP> <B> <UL> <LI><A HREF="#triggers">Pre-Submit Triggers </A> <LI><A HREF="#diffmrg">Diffing and Merging </A> <LI><A HREF="#defect">Defect Tracking </A> <LI><A HREF="#compat">Compatibility Aids </A> </UL> </TABLE> <B> <LI><A HREF="#misc">Miscellany </A> </CENTER> <br> <br> <br> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="about"></A> <H2>About This Project </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <TABLE CELLPADDING=5%> <TD VALIGN=TOP> <B>Content</B></TD> <TD VALIGN=TOP> The Perforce Utilities Project is a collection of programs and scripts that integrate Perforce with a variety of software development tools and environments, and/or provide alternative interfaces to the Perforce SCM system. </TD> </TR><TR> <TD VALIGN=TOP> <B>Curator</B></TD> <TD VALIGN=TOP> This project is maintained by Perforce staff, with individual curators as shown below. Eventually we'll split these utilities up into separate projects, depending on their activity and growth. If you have a particular interest in any or all of this project, and would like to volunteer as a curator, please email us. <p> If you would like to contribute to one of the categories that does not have a curator yet, you may request to have your submitted changes integrated into this project by emailing Perforce staff at <A HREF="mailto:info@perforce.com">info@perforce.com</A>. </TD> </TR> </TABLE> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="browsers"></A> <H2>Depot Browsers </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/perfbrowse"> //public/perforce/utils/perfbrowse/... </A></CODE></B><DD> <DD> <B>perfbrowse</b>. Shows depot hierarchies, changelists, filelogs, file contents, diffs, etc. There's a <a href=perfbrowse/perfbrowse.perl@P99.1> 99.1-compatible</a> version and a <a href=perfbrowse/perfbrowse.perl@P98.2> 98.2-compatible</a> version. <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/p4db"> //public/perforce/utils/p4db/... </A></CODE></B><DD> <DD> <B>P4DB</b>. Based on <b>perfbrowse</b>, with added features, including labels associated with files, file content viewer with annotated deltas, HTML file viewer, and The Great Submit Race. </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="convert"></A> <H2>Conversion Scripts </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/cvs2p4"> //public/perforce/utils/cvs2p4/... </A></CODE></B><DD> <DD> This <b>CVS to Perforce</b> converter extracts metadata from a CVS repository and generates a Perforce depot using Perforce client commands. The converter handles Attic/ and .cvsignore, and has flexible support for branching. Contributed by <A HREF="http://public.perforce.com/cgi-bin/p4db/lu.cgi?USER=richard_geiger"> Richard Geiger</a>, who is also its curator. (See the README file for more info.) </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="daemons"></A> <H2>Review Daemons </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="triggers"></A> <H2>Pre-Submit Triggers </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <P> <DL> <DT> <B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/triggers"> //public/perforce/utils/triggers/... </A></CODE></B> <DD> Perforce Release 99.1 introduced server support for pre-submit triggers. Here are some example scripts that can be used as triggers in a Perforce 99.1 (or later) server. These scripts were written and contributed by <a href="/guest/jeff_bowles/jab.html"> Jeff Bowles</a> and <A HREF="/guest/wes_peters/pcp.html">Wes Peters</A>. <P> <table border=1> <tr> <td><b>Script Name</b><td><b>Status<sup>*</sup></b><td><center><b>Description</b></center></tr> <tr> <td> <B><A HREF="triggers/Jobs.pl"> Jobs.pl </A></B> <td><img src="triggers/smiley.gif"> <td> Example trigger to enforce a rule "submissions must be associated with a job.". <tr> <td> <B><A HREF="triggers/Jobs.sh"> Jobs.sh </A></B> <td><img src="triggers/smiley.gif"> <td> Similar to above, but contributed by <A HREF="/guest/wes_peters/pcp.html">Wes Peters</A> and written in Unix "shell". <i>Takes a different approach to the problem, running "p4 fixes" to determine whether you're fixing something with this submission.</i> <tr> <td> <B><A HREF="triggers/Pairs.pl"> Pairs.pl </A></B> <td><img src="triggers/smiley.gif"> <td> Example trigger to enforce a rule "files of suffix .x/.y need to be checked in as pairs". <tr> <td> <B><A HREF="triggers/Binary.pl"> Binary.pl </A></B> <td><img src="triggers/smiley.gif"> <td> Example trigger to enforce a rule "submissions of .gif must binary files and .sh files should be text and...." <tr> <td> <B><A HREF="triggers/simple.cmd"> simple.cmd </A></B> <td><img src="triggers/teaching.gif"> <td> Classroom example of writing a trigger using the Windows/NT command shell, a.k.a. "a <i>.cmd</i> script". (It checks that "Bug:" is included in the change description.) Doesn't do a lot, but gets the idea across. </table> <p> <sup>*</sup>How to interpret the "Status" field: <ul><li>a smiley face means "it's probably simple enough to use without any worries that it'll corrupt or slow down anything" ; <li>a scared face means "you probably want to read the comments at the top of the script - this might need localization/tailoring or might have performance implications you want to investigate before deploying on your production Perforce server" ; <li>and "under construction" means just that - you can look, you can make copies, but it's getting reworked at the moment. </ul> </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="diffmrg"></A> <H2>Diffing and Merging </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/emacs_mrg"> //public/perforce/utils/emacs_mrg/... </A></CODE></B><DD> <DD> Some emacs lisp code to make editing merges in p4 easier. </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="defect"></A> <H2>Defect Tracking </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="compat"></A> <H2>Compatibility Aids </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/c4"> //public/perforce/utils/c4/... </A></CODE></B><DD> <DD> <B>c4</B>. A CVS-like frontend to <b>p4</b>. This package was contributed by <A HREF="http://public.perforce.com/cgi-bin/p4db/lu.cgi?USER=neil_russell"> Neil Russell</a>, who is also its curator. (See the README file for more info.) <P><DT><B> <A HREF="http://public.perforce.com/cgi-bin/p4db/dtb.cgi?FSPC=public/perforce/utils/aegis"> //public/perforce/utils/aegis/... </A></CODE></B><DD> <DD> Aegis-like wrappers to <b>p4</b>. </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="misc"></A> <H2>Miscellany </H2> <TD WIDTH=5% BGCOLOR=FFCC66 ALIGN=RIGHT><FONT SIZE="-2"><A HREF="#toc"> Back to Table of Contents</A></TD></TR> </TABLE> <!------------------------------------------------------------------> <br><br><br> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%> <TR> <TD WIDTH=15% BGCOLOR=FFCC66 ALIGN=LEFT VALIGN=CENTER> <FONT SIZE="-2"> Copyright ©<br> 1998, 1999<br> <a href="http://www.perforce.com">Perforce Software</a><br> </FONT> </TD> <TD WIDTH=70% BGCOLOR=FFCC66 ALIGN=CENTER> <FONT SIZE="-2"> You're browsing a file stored as<br> <code>$Id: //guest/jeff_bowles/perforce-triggers/index.html#11 $</code><br> in the <A HREF=http://public.perforce.com/public/index.html>Perforce Public Depot</A>. </FONT> </TD> <TD WIDTH=15% BGCOLOR=FFCC66 ALIGN=RIGHT> <FONT SIZE="-2"><A HREF="#toc"> Back to<BR>Table of<BR>Contents</A></TD></TR> </FONT> </TD> </TR> </TABLE> <!------------------------------------------------------------------> </BODY>
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#11 | 3564 | Jeff Bowles |
Updating to remove CheckC.pl entirely. Too many people have taken it as a supported, nifty thing and ignored the comments saying "this is an example and a potential performance-killer." |
||
#10 | 374 | Jeff Bowles | Pulling over simple changes into ~jab to keep it current. | ||
#9 | 110 | Jeff Bowles | Making Wes Peters a bit more prominent in the description(s) | ||
#8 | 107 | Jeff Bowles | Change to reflect structure of 'utils' directory to which this will be pushed. | ||
#7 | 106 | Jeff Bowles | Branching these suckers to mimic the utils area. | ||
#6 | 105 | Jeff Bowles | deleting original names, in order to match the 'utils' area. | ||
#5 | 103 | Jeff Bowles | updating info for wes peters | ||
#4 | 102 | Jeff Bowles | Dealing with a typo in a filename | ||
#3 | 101 | Jeff Bowles | Adding trigger written in "shell" by Wes Peters. | ||
#2 | 99 | Jeff Bowles | Adding Jo's classroom example using an NT command file as a trigger. | ||
#1 | 81 | Jeff Bowles | adding some trigger examples.... |