<!doctype html public "-//w3c//dtd html 4.0 transitional//en">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="GENERATOR" content="Mozilla/4.7 [en] (X11; I; Linux 2.2.13 i686) [Netscape]">
<meta name="Author" content="fredric@mydata.se">
<meta name="Description" content="Information on how to install and maintain P4DB">
<title>Developers README file for P4DB</title>
<style TYPE="text/css"><!--
H1,H2,H3,H4,H5,H6 {
font-family: Arial, Helvetica ;
background-color: #e0e0e0 ;
}
H3 {
margin-left: 3% ;
}
H4 {
margin-left: 6% ;
}
H5 {
margin-left: 9% ;
}
P.Norm {
margin-left: 12% ;
margin-right: 40pt ;
font-family: Arial, Helvetica ;
}
P.Norm UL, P.Norm OL, P.Norm DL,P.Norm TABLE {
margin-left: 12% ;
margin-right: 40pt ;
font-family: Arial, Helvetica ;
}
P.Note {
margin-left: 15% ;
margin-right: 40pt ;
background-color: #FFE0E0 ;
font-family: Arial, Helvetica ;
}
H1 {
text-align: center ;
font-family: Arial, Helvetica ;
}
.TOC {
margin-left: 15% ;
font-family: Arial, Helvetica ;
}
--></style>
</head>
<body>
<!-- *************************************************************************** -->
<h1>Administrators README for P4DB Version 2.01</h1>
<!-- -------------------------------------------------------------------------- -->
<h2>Introduction</h2>
<P Class=Norm>
This is a README for P4DB, a CGI based p4 depot browser written by
Fredric Fredricson (<a href="mailto:fredric@mydata.se">fredric@mydata.se</a>)
(One part is written by Bob Sidebotham, no email available). The README
is intended for administrators and others that want to install, maintain,
and possibly contribute to, P4DB.
<!-- -------------------------------------------------------------------------- -->
<h2>Table Of Contents</h2>
<P Class=TOC>
<ul class=TOC>
<li>
<a href="#About">About</a>
<li>
<a href="#Software">Software Requirements</a>
<li>
<a href="#Supported_platforms">Platforms and Compatibility</a>
<li>
<a href="#Installation">Installation and Configuration</a>
<li>
<a href="#Known">Known Bugs</a>
<li>
<a href="#Diffs">What's New</a>
<li>
<a href="#Licensing">Licensing</a>
<li>
<a href="#Warranty">Warranty</a>
<li>
<a href="#Contrib">Would You Like To Contribute?</a>
<li>
<a href="#Doc">Design Documentation</a>
<li>
<a href="#Credits">Credits</a>
</ul>
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="About"></a>About</h2>
<P Class=Norm>
P4DB is designed to provide a
user friendly and intuitive interface to the p4 depot. Information is presented
using a web browser and most pages combine output from two or more p4 commands.
<br>
The driving force behind the development
has been my needs as a manager for a software team, the needs for our project
leaders to document changes in the code line and the need for our programmers
to analyze changes in the code line (and most important, of course, the
need for me as a frustrated software engineer promoted to my level of incompetence
to get my hands on a nice little programming project).
<P Class=Norm>
The browser is written in perl and
developed on a Linux/Apache system and has been tested mainly with Netscape 4
although some of our users use MS Explorer and no problems has been reported.
<h3>Why P4DB?</h3>
<P Class=Norm>
P4DB is inspired by a depot browser, perfbrowse.perl,
made available by
<a href="http://www.perforce.com">Perforce</a> at
<a href="http://www.perforce.com/perforce/loadsupp.html#browse">
http://www.perforce.com/perforce/loadsupp.html#browse</a>
Perfbrowse.perl is written in perl and the author is unknown to me.
<P Class=Norm>
The idea is also stolen so I can't claim that one.
<P Class=Norm>
To view file a script by Bob Sidebotham called
<tt><a href="p4pr.perl">p4pr.perl</a></tt> is used.
This script is also made available by Perforce at
<a href="http://www.perforce.com/perforce/loadsupp.html#util">
http://www.perforce.com/perforce/loadsupp.html#util</a>
(but I made some minor changes and one bug fix).
<P Class=Norm>
I liked perfbrowse.perl very much but wanted just a little more
functionality. I started to add functionality and it quickly got out
of hand. Soon I had a huuuge perl script that I could no
longer maintain.
Once I realized that I can write a perl script that is
about 2-4 times the size of the script that I can maintain I decided to
rewrite it all from the start as a set of small, maintainable, perl scripts.
I leave to others to judge if I succeeded in my mission.
<br>
<i>(Maybe I should mention that it took much more time than I anticipated).</i>
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Software"></a>Software requirements</h2>
<P Class=Norm>
P4DB version 2.01 requires:
<UL>
<li>
Perl 5.004 or newer with the CGI.pm modules
installed. The CGI.pm module can be downloaded from
<a href="http://www.cpan.org/">http://www.cpan.org/</a>
<A href="http://search.cpan.org/search?dist=CGI.pm">(link to CGI.pm)</A>.
<li>
A http server that supports CGI:s. Apache
will do just fine.
<li>
P4 99.2 or later (98.2 will also work but
some features will be missing, 97.3 and older... forget
it!).<br>
P4DB has been tested with 2000.2beta.
</UL>
</P>
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Supported_platforms"></a>Supported platforms and compatibility</h2>
<P Class=Norm>
There is no real "list of supported
platforms" simply because there is no
real "support" for P4DB. I just write
it, test it, and release it.
<P Class=Norm>
<b>Http server:</b>
<br>
P4DB is developed on a Linux box running
Suse 6.3 and Apache 1.3.9 , runs in production on RedHat 6.2/Apache 1.3.9,
and has been reported to run on SUN/Solaris and NT/IIS platforms as well.
The NT platform require MKS toolkit or similar and some tweaking, though.
<P Class=Norm>
<b>Browser:</b>
<br>
All development work is done using Netscape
4.7 but I perform some basic testing with MS-Explorer.
I expect P4DB to work reasonably well with any GUI browser
like Mozilla or Opera. because P4DB use almost only plain HTML
and just a little CSS (Cascaded Style Sheets).
P4DB is <u>not</u> designed for character mode browsers such as Lynx.
<br>
And, by the way, the browser should support cookies.
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Installation"></a>Installation and configuration</h2>
<P Class=Norm>
NOTE: This installation description assumes that the
reader is familiar with http servers, cgi
scripts and, to a small degree, perl.
<h3>First: Where to install</h3>
<P Class=Norm>
Other than the obvious, that is
somewhere in a http servers CGI path,
I recommend you to set up a http
server on your p4 server and run P4DB
on that server. The main reasons
are that it improves response time and
reduce network load.
<h3>How to install</h3>
<P Class=Norm>
<ol>
<li>
You obviously got to this README. Together
with README.html file you got:
<ul>
<li><tt>install.pl</tt>
<li><tt>cgi_files.tar</tt>
<li><tt>P4CGI.html</tt>
<li><tt>P4DB.shortcuts.txt</tt>
<li><tt>P4DB.shortcuts2.txt</tt>
<li><tt>P4DB.conf.txt</tt>
</ul>
Move all these files together with <tt>README.html</tt>
to the cgi-bin directory used by the web server or wherever
you want P4DB installed. Or you could just move the original
tarball and unpack it.
<li>
Type "<tt>perl install.pl</tt>" To install
all scripts.
<br>
Install.pl will unpack all cgi scripts
and modifies the first line to contain the path to perl.
<br>For details, see the <tt><a href="install.pl">install.pl</a></tt>
script.
<li>
The file <tt>index.cgi</tt> is the start page
for P4DB. Create your links to it..
</ol>
<P Class=Norm>
This is the theory, at least. I have not tested
it on many systems
<h4>Installation without <tt>install.pl</tt></h4>
<P Class=Norm>
If <tt>install.pl</tt> don't work
for you here is what it does that you need to do manually:
<ol>
<li>
Verify that perl and the perl module CGI.pm
is available
<li>
Unpack cgi_file.tar (<tt>tar -xf cgi_files.tar</tt>)
<li>
Find path to perl
<li>
Change first line of every file with extension
".cgi", ".pl" or ".perl" to contain correct path to perl
</ol>
</blockquote>
<h3>How to configure</h3>
<h4>Basic configuration</h4>
<P Class=Norm>
The basic configuration file is named P4DB.conf. The file
is not included in the package but a sample configuration
file called <tt><a href="P4DB.conf.txt">P4DB.conf.txt</a></tt> is.
<p class=Norm>
Copy the file P4DB.conf.txt to P4DB.conf
and modify it. The instructions are included in the file.
<P class=Note>
<B>Security Note 1:</B> Since the DEPOT field in the
configuration file may contain passwords for p4 users it
may be wise to move the file outside the file tree
reachable by the web server. The path to the configuration
file is specified at the top of <tt>P4CGI.pm</tt>.
<P class=Note>
<B>Security Note 2</B> P4DB does not provide any access protection
or other security. It is not possible to modify the depot using P4DB so
poorly trained or inexperienced operators should not be able to damage
the depot. If this security is not enough you have to rely on the authentication
provided by the web server.
<p class=Norm>
You must specify a p4 user for P4DB. If I understand
Perforce Licensing policies correctly you should not have
to use a separate user license for this user, but this is
just my interpretation and I recommend that you verify this
with Perforce.
<h4>Shortcut files</h4>
<P Class=Norm>
It is possible to add a set of links to the P4DB
index page using a "shortcut file". The idea is to add
links that function as shortcuts into P4DB for the users.
There can be more than one shortcut file and the user
can select his/her favorite in the "set preferences" page.
<h4>Shortcut file format:</h4>
<P Class=Norm>
The shortcut file is format is HTML plus some
extra tags and comment syntax added by P4DB. The HTML code is inserted
into the P4DB index page.
There are no limits imposed by P4DB to the HTML code but there are an
infinite number of bad ideas to avoid (like, for example,
inserting a <tt></BODY></tt> tag in the shortcut file).
Ill-formed HTML will probably break the index page.
<h5>Difference from HTML</h5>
<P Class=Norm>
<dl>
<dt>
Perl style comments
<dd>
Lines starting with '#' are ignored.
<dt>
Extra tag <tt><P4DB></tt><i>text</i><tt></P4DB></tt>
<dd>
This tag will make "<i>text</i>" a link to
a function in P4DB.
<P class=Norm>
<table border>
<tr>
<th VALIGN=TOP NOSAVE>Syntax</th>
<td><tt><P4DB>....</P4DB></tt></td>
</tr>
<tr NOSAVE>
<th VALIGN=TOP NOSAVE>Attribute specifications</th>
<td NOSAVE>
<dl>
<dt>
<tt>TYPE=</tt><i>link_type </i>(mandatory)
<dd>
<i>link_type</i> is one of:
<ul>
<li>
<tt>CHANGELIST</tt> - display list of changes
<li>
<tt>BROWSE</tt> - browse depot
<li>
<tt>JOBLIST</tt> - list jobs
</ul>
<dt>
FSPC=<i>depot_file_spec </i>(valid for types
<tt>CHANGELIST</tt> and <tt>BROWSE</tt>)
<dd>
<i>depot_file_spec</i> is a file spec in depot
format. A typical file spec would be "//..."
to view changes for or the whole depot or browse starting
at the top of the depot.
<br>
For CHANGELIST more than one file spec can be listed.
The file specifications should be separated by "+".
For example "<tt>//...*.c+//...*.h</tt>" would
list changes for all .c and .h files.
<dt>
USER=<i>user_list </i>(valid for CHANGELIST).
<dd>
<i>user_list</i> is a comma separated list of
users that the changes should
be listed for.
<dt>
GROUP=<i>group_list</i> (valid for CHANGELIST).
<dd>
<i>group_list</i> is a comma separated list of
groups that the changes should be listed for.
<dt>
<i>JOB_FIELD</i>=<i>data</i> (valid for JOBLIST)
<dd>
JOB_FIELD is the field name for any field in
the job spec for the depot. Data is the data
that this field should contain. Typical use would
be:
<br>
<tt><P4DB type=joblist status=open>list open jobs</P4DB>.</tt>
</dl>
<p>
These are the most important attribute specifications.
More can be found if you study the URLs generated when
you browse around in P4DB. The attributes corresponds
more or less directly to the URL parameters. The one exception
is the job list where field names are translated to
field codes in the URL.
</dl>
</tr>
</table>
</dl>
<P Class=Norm>
Two sample shortcut files are included with the distribution:
<A HREF="P4DB.shortcuts.txt"><tt>P4DB.shortcuts.txt</tt></a> and
<A HREF="P4DB.shortcuts2.txt"><tt>P4DB.shortcuts2.txt</tt></a>.
<h4>Configure file types (for viewers)</h4>
<P Class=Norm>
P4DB will let users view some file types using
applications like MS-Word for Word-file etc.
This can be configured in a file
<a href="viewConfig.pm">viewConfig.pm</a>.
Default will let you view HTML, gif, jpeg, MS-Word, MS-Powerpoint,
and Acrobat (PDF) formats.
See file <a href="viewConfig.pm">viewConfig.pm</a> for details.
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Known"></a>Known bugs</h2>
<P Class=Norm>
<ul>
<li>
A serious case of Feature Bloat.
</ul>
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Diffs"></a>Diffs between versions</h2>
<h4>New to P4DB 2.01:</h4>
<P Class=Norm>
<dl>
<dt>Works for p4 2000.2beta
<dd>The jobspec command was changed and now P4DB understands
both 2000.2beta as well as 2000.1 thru 98.2.
<dt>Works for p4 2000.1
<dd>The depot statistics did not work properly for p4 release
2000.1
<dt>Made easier to port
<dd>The configuration file now contains fields for command to redirect to
null device and command to redirect to stdout. This makes it
easier to port P4DB to NT that thinks /dev/null is called
NUL:.
<P class=Note>
Configuration file for 2.0 not compatible with 2.01
<br>
<br>
<dt>Java GUI browser improved
<dd>Can now handle filenames containing spaces
<dt>Label diff view rewritten
<dd>The old code was buggy and difficult to maintain
<dt>Made some code more maintainable
<dd>Modified client view and label view code to make it more maintainable.
</dl>
<h4>Diff earlier version of P4DB to 2.0:</h4>
<P Class=Norm>
The difference is so huge that I do not care
to list it. P4DB 2.0 can simply do much more than earlier versions.
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Licensing"></a>Licensing</h2>
<P Class=Norm>
There is no license for P4DB.
You are free to use, modify, resell, repackage, make money from (ha!),
P4DB. Your conscience is the limit ;-).
<br>
I might decide to apply GPL to it some
time in the future but I doubt that I will bother....
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Warranty"></a>Warranty</h2>
<P Class=Norm>
If you get any problems because of these scripts I promise
to feel sorry for you. Other than that you are
on your own.
<P Class=Note>
Please note for the record that I do not even claim that
P4DB can be used to browse the P4 depot. I will also inform
you that even though the intention is that P4DB should not
in any way modify the depot
status I can make no promises that this is can not happen.<br><br>
And please remember that it would be easy for someone to grab the
P4DB code, insert a few malicious lines of code, and
"release" it with this "Trojan Horse".
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Contrib"></a>Would you like to contribute?</h2>
<P Class=Norm>
If you would like to contribute
changes/improvements/new functions feel free to do so and mail them to
me and I will add them to the next "release" (flames and flattery are also
welcome).
<p class=Note><b>Disclaimer</b>:
I may grow tired of
this project or change job or die or something in which case my promise
above probably expires.
<h3>What would be a contribution?</h3>
<P Class=Norm>
I will be glad for any kind of contributions
ranging from corrections of my bad English to new interesting
functionality. Nice letters are also welcome.
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Doc"></a>Design documentation</h2>
<P Class=Norm>
The most important documentation is in the P4CGI.pm module.
This modules is used by all scripts and contains
a set of common functions that are useful or defines some common "look
and feel" or both.
<P Class=Norm>
The P4CGI.pm module is documented using
perlpod (see perlpod man page). To get a HTML page
containing documentation
type:
<br>
<tt>pod2html P4CGI.pm ><a href="P4CGI.html">P4CGI.html</a></tt>
(There is one distributed with P4DB, for convenience)
<P Class=Norm>
For other files: more often than not the
code is commented.
<P Class=Norm>
There are three different files 'types'
in the design:
<dl COMPACT>
<dt> P4CGI.pm
<dd> - A perl module containing functions that
I find useful and all other scripts use
<dt> *.cgi
<dd> - A set of cgi scripts that are used as ...eh..
cgi-scripts.
<dt>p4pr.perl
<dd> - The script by Bob Sidebotham I mentioner
earlier
</dl>
<P Class=Norm>
The code also uses the CGI.pm perl module.
This module should be part of the "standard distribution" of perl (if there
is such a thing). If you do not have the module it is available for download at
<a href="http://www.cpan.org">www.cpan.org</a>.
<P Class=Norm>
As a part of my personal religion the -w
flag is always turned on and 'use strict' flag is also set. I have never
had any reason to regret this particular peculiarity of mine but it might
cause some warning messages that will be printed to the browsers error
log.
<P Class=Norm>
Performance has not been a great issue.
I assume that these cgi's will not have thousands
of hits each day and
the design has focused on ease of
development rather than speed.
<h3>List Of Files:</h3>
<P Class=Norm>
<table NOSAVE>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>P4CGI.pm</tt></td>
<td>A perl package that contains common functions</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>index.cgi</tt></td>
<td>Entry point or "main" cgi</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>SetPreferences.cgi</tt></td>
<td>Set user preferences
<br>User preferences are stored in a cookie. If cookies are not enabled
the user can not modify the user preferences and the default setting will
be used.</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>branchList.cgi</tt></td>
<td>List branches</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>branchView.cgi</tt></td>
<td>View information about a branch</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>changeByUsers.cgi</tt></td>
<td>Select a set of users and groups to view changes for. Calls changeList.cgi
to do the job.</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>changeList.cgi</tt></td><td>
List changes
<blockquote>
NOTE:<br>
Even if I said earlier that my goal was to create a set of small, maintainable,
scripts this script stands out as a blazing proof of my failure. It may
not be huge but it is certainly not maintainable. Some day I might rewrite
it......
<br>
<i>And to 2.0 I finally rewrote it.</i>
</blockquote>
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>changeView.cgi</tt></td>
<td> View a change </td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>clientList.cgi</tt></td><td>
List clients
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>clientView.cgi</tt></td><td>
View a client spec.
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>colorView.pm</tt></td><td>
Perl module used by fileViewer.cgi to handle color display of some file types.
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>colorC.pl<br>
colorHtml.pl<br>
colorPerl.pl</tt></td><td>
Special designed filters that adds colors to C/C++ (colorC.pl), HTML code (colorHtml.pl) and
perl (colorPerl.pl).
The filters are quick hacks and more like demo examples.
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>depotStats.cgi</tt></td><td>
View depot statistics
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>depotTreeBrowser.cgi</tt></td><td>
Browse the depot file tree
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileDiffView.cgi</tt></td><td>
View diff between
two files or two revisions
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileDownLoad.cgi</tt></td><td>
Download files
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileLogView.cgi</tt></td><td>
View file history
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileOpen.cgi</tt></td><td>
List open files
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileSearch.cgi</tt></td><td>
Search for file matching file spec
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>fileViewer.cgi</tt></td><td>
View a file
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>filesChangedSince.cgi</tt></td><td>
List recently modified files
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>groupView.cgi</tt></td><td>
View a group
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>htmlFileView.cgi</tt></td><td>
"Smart" html file viewer that translates relative links to links into the
depot
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt> javaDataView.cgi</tt></td><td>
Java depot browser cgi
<br>
Provides data for java part of depot browser
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>jobList.cgi</tt></td><td>
List jobs
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>jobView.cgi</tt></td><td>
View info about a job
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>labelDiffView.cgi</tt></td><td>
Label diff viewer
<br>View diff between two labels
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>labelList.cgi</tt></td><td>
Display a list of all labels
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>labelView.cgi</tt></td><td>
List info about a label
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>p4race.cgi</tt></td><td>
The p4 submit race
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>searchPattern.cgi</tt></td><td>
Specify a search for a pattern in description field in changes.
<br>
Calls changeList.cgi to do the actual job.
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>specialFileView.cgi</tt></td><td>
Special
file viewer
<br>
Special file viewer for HTML, JPEG, GIF , MS-Word, MS-Powerpoint, RTF,
and PDF file types. Downloads files with the appropriate Content-Type
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>userList.cgi</tt></td><td>
Display a list of all users
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>userView.cgi</tt></td><td>
View info about a user
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>p4jdb/P4DirTreeApplet.java<br>
p4jdb/P4DirTree.java<br>
P4Jdb/P4File.java<br>
p4jdb/P4Folder.java<br>
p4jdb/TreeDisplay.java</tt></td><td>
Java source code for the GUI depot tree
browser.
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>Makefile</tt></td><td>
Make file for java classes (GNU make)
</td>
</tr>
<tr VALIGN=BOTTOM>
<td ALIGN=RIGHT VALIGN=TOP><tt>p4jdb/*.class</font></td><td>
Java files compiled from the .java files above
</td>
</tr>
</table>
<!-- -------------------------------------------------------------------------- -->
<h2><hr ALIGN=LEFT WIDTH="50%"><a NAME="Credits"></a>Credits</h2>
<P Class=Norm>
An incomplete list of people that has contributed to P4DB in different ways:
<ul>
<li>Diane Holt - Diane has also released her own version of P4DB
adapted to NT. I think it's available in Perforce Public Depot.
<li>Lawrence You
<li>Ron Shalhoup
<li>Rob Chandhok
<li>Carl Martinsson - A colleague of mine that use P4DB a lot and
contributed a lot of ideas for new functions.
<li>Eric Engberg - Provided valuable information on how to
facilitate ports to NT/Apache.
<li>Lee Marzke - For valuable bug reporting
</ul>
<P Class=Norm>
There are more but these are the only names I found in my records.
</body>
</html>