<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 in need of one or more responsible, knowledgeable curators. 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> Until a curator is found, 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. <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> <!------------------------------------------------------------------> <!------------------------------------------------------------------> <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/CheckC.pl"> CheckC.pl </A></B> <td><img src="triggers/afraid.gif"> <td> A script to notice when you're creating new files (or integrating to a new branch) and the directory name you're writing the [new] file to isn't the same case as an existing directory name. <p><i>(For example, if "//depot/<u>x</u>/<u>y</u>/z.c" exists, this won't allow you to create a file named "//depot/<u>X</u>/<u>Y</u>/one.c".)</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/emacs"> //public/perforce/utils/emacs/... </A></CODE></B><DD> <DD> Simple Perforce-Emacs integration. <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. <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>. <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#9 $</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.... |