<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> </B> <TD VALIGN=TOP> <B> <UL> <LI><A HREF="#triggers">Triggers </A> <LI><A HREF="#diffmrg">Diffing and Merging </A> <LI><A HREF="#compat">Compatibility Aids </A> <LI><A HREF="#misc">Miscellany </B> </A> </UL> </B> </TABLE> </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:opensource@perforce.com">opensource@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:8080/@ra=s@/public/perforce/utils/perfbrowse/"> //public/perforce/utils/perfbrowse/... </A></CODE></B> <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:8080/guest/fredric_fredricson/P4DB/rel/?ac=83"> //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. <P> NOTE: Security problems have been found with the P4DB implementation. Refer to this <a href="http://seclists.org/lists/bugtraq/2004/May/0058.html"> Bugtraq notification</a> for more details. </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="ftp://public.perforce.com/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:8080/@md=d&ra=s@//richard_geiger?ac=17"> Richard Geiger</a>, who is also its curator. (See the <a href=ftp://public.perforce.com/public/perforce/utils/cvs2p4/README>README</a> file for more info.) <P><DT><B> <A HREF=vsstop4/index.html> //public/perforce/utils/vsstop4/... </A></CODE></B><DD> <DD> Converts <B>Visual Source Safe</B> (VSS) archives to Perforce, preserving the original times and authors. Branches are translated verbatim, individual file revisions are grouped as much as possible into Perforce's notion of atomic changelists. <P><DT><B> <A HREF=pvcstop4/index.html> //public/perforce/utils/pvcstop4/... </A></CODE></B><DD> <DD> Converts <B>PVCS</B> archives to Perforce, preserving the original times and authors. Branches are translated verbatim, individual file revisions are grouped as much as possible into Perforce's notion of atomic changelists. <p>Both the VSS and PVCS conversion projects are curated by <a href=http://public.perforce.com/guest/robert_cowham/pcp.html>Robert Cowham</a>. </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> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="reviewd/p4review.py"> //public/perforce/utils/reviewd/p4review.py </A></CODE></B> <DD> A Perforce notification review daemon written in Python, for use on Windows or Unix; can run in the background or via cron; allows users to subscribe to notifications about jobs (as well as changes); can notify admin about bad email addresses. <P><DT><B> <A HREF="reviewd/p4notifyd.pl"> //public/perforce/utils/reviewd/p4notifyd.pl</A> </A></CODE></B> <DD> A Perforce notification review daemon for Unix, written in Perl. This is the review daemon used for the Public Depot. Runs on Unix; written in perl; can run in the background or via cron; supports "cc:" in the description or client spec; can do logging; can add a hyperlinks to p4web (or some other web-based Perforce browser) to display full change information. <P><DT><B> <A HREF="reviewd/reviewer/index.html"> //public/perforce/utils/reviewd/reviewer/...</A> </A></CODE></B> <DD> A Perforce notification review daemon in Java. Contributed by David Markley. </DL> <!------------------------------------------------------------------> <P> <TABLE CELLSPACING=0 BORDER=0 WIDTH=100%><TR><TD BGCOLOR=FFCC66> <A NAME="triggers"></A> <H2>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:8080/@ra=s@/public/perforce/utils/triggers/"> //public/perforce/utils/triggers/... </A></CODE></B> <DD> <p> <LI><b>Authentication Triggers</b><br> Authentication Triggers were introduced in the 2005.2 release of the Perforce Server. There are two types of authentication triggers: <CODE>auth-check</CODE> and <CODE>auth-set</CODE>. See the <A href="http://www.perforce.com/perforce/doc.052/manuals/p4sag/index.html"> Perforce System Administrator Guide</A> for additional details. Below are examples of the two new trigger types: <p> <table border=1 cellpadding=3> <tr> <td NOWRAP><b>Script Name</b><td NOWRAP><b>Trigger Type</b> <td width="100%"><center><b>Description</b></center></tr> <tr> <td><B><A href="./triggers/p4authenticate.pl">p4authenticate.pl<A></B> <td>auth-check <td>Simple example of LDAP authentication written in Perl.</tr> <tr> <td><B><A href="./triggers/p4authenticate.c">p4authenticate.c<A></B> <td>auth-check <td>Simple example of LDAP authentication written in C.</tr> <tr> <td><B><A href="./triggers/testpass.pl">testpass.pl<A></B> <td>auth-check <td>Test trigger to confirm authentication check is working.</tr> </tr> </table> <P> <LI><b>In, Out, Save, Delete, Content, Submit & Commit Triggers</b><br> In the 2004.2 release of the Perforce Server, six of the above trigger types were introduced. In the 2005.1 release, the <CODE>delete</CODE> trigger type was added. Examples of all of these trigger types can be found in the <A href="http://www.perforce.com/perforce/doc.051/manuals/p4sag/index.html"> Perforce System Administrator Guide</A>. <p> <LI><b>Pre-submit Triggers</b><br> Prior to 2004.2 release of the Perforce Server, there was only one Perforce trigger type: the pre-submit trigger. The following are examples of pre-submit triggers (now referred to as triggers of type <CODE>submit</CODE>). <p> Unless otherwise noted, the trigger scripts below were written and contributed by<a href="/guest/jeff_bowles/jab.html">Jeff Bowles</a>. <P> <table border=1 cellpadding=3> <tr> <td NOWRAP><b>Script Name</b><td><center><b>Description</b></center></tr> <tr> <td> <B><A HREF="triggers/Jobs.pl"> Jobs.pl </A></B> <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> 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="http://public.perforce.com:8080/guest/jeff_bowles/perforce-triggers/triggers/CheckC.pl?ac=22"> CheckC.pl </A></B> <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.<br> <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><br> WARNING: This trigger can significantly affect performance. <tr> <td> <B><A HREF="triggers/Pairs.pl"> Pairs.pl </A></B> <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> 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> 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> </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:8080/@ra=s@/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="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:8080/@ra=s@/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:8080/@md=d&ra=s@//neil_russell?ac=17"> Neil Russell</a>, who is also its curator. (See the README file for more info.) <P><DT><B> <A HREF="http://public.perforce.com:8080/@ra=s@/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> <!------------------------------------------------------------------> <DL> <P><DT><B> <A HREF="http://public.perforce.com:8080/@ra=s@/public/perforce/utils/p4wrapper/"> //public/perforce/utils/p4wrapper/... </A></CODE></B><DD> <DD> <B>p4wrapper</B>. A set of useful commands wrapped around <b>p4</b>, some (but not all) with a CVS bent. Contributed and curated by <A HREF="http://public.perforce.com:8080/@md=d&ra=s@//rick_richardson?ac=17"> Rick Richardson</a>. (See the README file for more info.) </DL> <!------------------------------------------------------------------> <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/perforce_software/utils/index.html#28 $</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 | |
---|---|---|---|---|---|
#35 | 6283 | Sam Stafford | Update redirects to use new short URLs. | ||
#34 | 6276 | Sam Stafford | Change old pages to http://public.perforce.com/wiki/ redirects. | ||
#33 | 6060 | michael |
Add link to svn2p4. Clean up triggers section: remove status column, status explanation, checkcase.pl reference |
||
#32 | 6026 | rlo |
Public depot fixes: * Titles formatted similarly * Navbar changed and shortened * Change review taken out of navbar * Links fixed |
||
#31 | 6025 | rlo |
Public Depot Redesign goes live * Skin matches KB and latest WWW skin * Rudimentary search mechanism based on google * did this already, but made some big mistakes and it was easier to obliterate and start over * about the above: yikes! |
||
#30 | 5661 | michael | Reformat link. | ||
#29 | 5660 | michael | Fix links to P4DB. | ||
#28 | 5417 | michael |
Update link to P4DB in Utils section. Add security notice. |
||
#27 | 5203 | michael |
Add reference to authentication trigger examples and rework section layout. Remove defect tracking section. Delete old GIFs. |
||
#26 | 4906 | michael |
Fix link to CheckC.pl trigger so that it points to something. In this case, the P4Web filelog in Jeff Bowles' user branch that shows: 1) the trigger is deleted at #head, and 2) makes the caveat about performance more obvious. |
||
#25 | 4682 | michael |
Add reference to the PVCS converter recently branched into //public. Remove redundant info on Perl and Perforce version requirements. These are noted on the project index pages. |
||
#24 | 2179 | rmg | Fix vsstop4 link. | ||
#23 | 2178 | rmg | Link in Robert's new vsstop4 index page. | ||
#22 | 1683 | rmg | Add a link to David Markley's Java review daemon. | ||
#21 | 1155 | rmg |
The change to utils/index.html was required to get the page to render better with Netscape 6.2. (Without the closing </B> tags, the whole page from the Depot Browsers section on down rendered bold...!) I made the same logical change to the other four for consistency, though they didn't seem to suffer from the same problem. p4dti/index.html still doesn't render right under Netscape 6.2, but it's from a different patterns and I couldn't see a quick clean fix... so I didn't mess with it for now. |
||
#20 | 1017 | rmg |
Make the download behavior and naming (for p4notifyd -> p4notifyd.pl) more consistent with other things in the Public Depot. |
||
#19 | 1016 | rmg | Add two review daemons. | ||
#18 | 968 | rmg |
Change mail addresses from "info@perforce.com" to "opensource@perforce.com" (now that the "opensource" address exists). |
||
#17 | 780 | rmg |
Take 2 for the p4db -> p4web conversion. (change 788 redux) |
||
#16 | 779 | rmg | Back out change 778. | ||
#15 | 778 | rmg | Covert all p4db links into p4web links. | ||
#14 | 691 | rlo | Typo fix | ||
#13 | 690 | rlo | Rick Richardson's "p4wrapper" becomes a public depot utility. | ||
#12 | 245 | Laura Wingerd |
Add emacs p4merge files, belatedly, and removed link to missing emacs integration, since the version we have is really old. |
||
#11 | 152 | Laura Wingerd | cvs2p4 goes public. | ||
#10 | 149 | Laura Wingerd | Annoint Neil Russell curator of utils/c4. | ||
#9 | 145 | Laura Wingerd |
A 99.1-compatible perfbrowse. (Integrated from change 142, change 143.) |
||
#8 | 113 | Laura Wingerd |
Pull in updates to sample triggers (change 110, change 109) |
||
#7 | 108 | Laura Wingerd |
Update trigger descriptions (see change 107, change 106, change 105) |
||
#6 | 96 | Laura Wingerd | oops, typo. | ||
#5 | 94 | Laura Wingerd |
Re-org "triggers" directory -- it's now part of the "Perforce Utilities" project. |
||
#4 | 52 | Laura Wingerd | Minor web page format changes. | ||
#3 | 51 | Laura Wingerd | Update copyright year. | ||
#2 | 42 | Laura Wingerd | Fix links in index pages, add one for jam. | ||
#1 | 39 | Perforce maintenance | Publish new Perforce Utilities Project index page. | ||
//guest/laura_wingerd/perforce/utils/index.html | |||||
#1 | 37 | Laura Wingerd | Prototype project index pages. |