index.html #11

  • //
  • guest/
  • tony_smith/
  • perforce/
  • utils/
  • index.html
  • View
  • Commits
  • Open Download .zip Download (4 KB)
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD><TITLE>Tony Smith's Utilities - Perforce Public Depot</TITLE>
<META content="text/html; charset=iso8859-1" http-equiv=Content-Type>
<BODY bgColor=#ffffff>

<CENTER>
  <A name=toc><H2>Perforce Utilities</H2></A>
</CENTER>
<br>
Here are some tools I've written, in the hope they will be useful to others. 
You them at your own risk.<br>
<P> 
  <TABLE border=0 cellSpacing=0 width="100%">
    <TBODY> 
    <TR> 
      <TD bgColor=#ffcc66><A name=tools></A> 
        <H2>Scripts</H2>
      <TD align=right bgColor=#ffcc66 width="5%"><FONT size=-2><A 
      href="#toc">Back to Table of Contents</A></FONT></TD>
    </TR>
    </tbody>
  </table>
  <p>

  <TABLE border=0 cellpadding="10" width="100%">
    <TBODY> 
    <tr>
      <td><a href="p4abuse.pl">p4abuse.pl</a></td>
      <td>p4abuse.pl is a small perl script designed to help a system administrator
          detect abuses of a Perforce system. Currently, it will highlight two common
          errors: using a client from multiple hosts, and use of a client by multiple
          users.
      </td>
    </tr>
    <tr>
      <td><a href="rename_depot.pl">rename_depot.pl</a></td>
      <td>rename_depot.pl allows a sysadmin to rename a Perforce depot whilst
          preserving the entire history of the depot. It does this by editing a
          checkpoint file, so the user must checkpoint their database first, and
          then recover from the edited checkpoint at the end. ALWAYS ensure that
          appropriate backups are taken before using this script.
      </td>
    </tr>
    <tr>
      <td><a href="specsaver.rb">specsaver.rb</a></td>
      <td>specsaver.rb versions all client/label/branch specs along with global
	  data like typemaps, protections and jobspec. It requires 
	  <a href="../API/Ruby/index.html">P4Ruby</a> but is much more 
	  efficient as a result. You can read the docs 
	  <a href="doc/specsaver/index.html">here</a>. Note that with the
	  advent of spec depots, specsaver.rb is largely redundant.
      </td>
    </tr>
    <tr>
      <td><a href="d2u.cc">d2u.cc</a></td>
      <td>A small C++ program based on the Perforce API which converts line
	  endings from DOS (\r\n) format to Unix (\n) format. It simply
	  reads from stdin and writes to stdout. The 'standard' utility called
	  'dos2unix' isn't good enough as it performs additional translations 
	  which mess up the result. For example octal literals in the input 
	  undergo character set conversion, and bare \r's are also converted 
	  to \n. Neither of these are t helpful when migrating Perforce 
	  servers. d2u <b>only</b> converts \r\n to \n.
      </td>
    </tr>
    <tr>
      <td><a href="convarchives.rb">convarchives.rb</a></td>
      <td>
	  A Ruby script to help customers migrating their Perforce Servers
	  from Windows to Unix/Linux. Converts the line endings in the *,v
	  files from DOS to Unix format using d2u (above), and converts all
	  file and directory names to lower-case as it goes. It works by
	  copying the archives from a source path, to a destination path, and 
	  can do incremental migrations in this way. Also it's multi-processed
	  so it will perform well on large data-sets.
      </td>
    </tr>
  </table>
  <p>
  <TABLE border=0 cellSpacing=0 width="100%">
    <TBODY> 
    <TR> 
      <TD bgColor=#ffcc66><A name=tools></A> 
        <H2>Modules</H2>
      <TD align=right bgColor=#ffcc66 width="5%"><FONT size=-2><A 
      href="#toc">Back to Table of Contents</A></FONT></TD>
    </TR>
    </tbody>
  </table>
</BODY></HTML>
# Change User Description Committed
#11 5871 Tony Smith Add script to incrementally convert large sets of archive
files from Windows to Unix line endings using d2u. It is still
a little unpolished, but it's a start and may be useful to others.
#10 5870 Tony Smith Add d2u source code for those who want to use it.
dos2unix
isn't suitable for Perforce migrations, and Perl can be
too slow for large repositories. This small program does
fast, accurate line ending conversion using the Perforce API
#9 4677 Tony Smith Move P4table.rb to the P4Ruby library and rename it to p4table.rb
instead. There's an update coming so this is just the move.
#8 3095 Tony Smith First batch of documentation for specsaver.rb
#7 3093 Tony Smith Move docs for P4Table in preparation for upcoming docs for
specsaver.rb
#6 2396 Tony Smith Add RDoc documentation for P4Table.rb.
Very pretty.
#5 2393 Tony Smith Publish P4Table Ruby module that allows you to treat a Perforce
repository as a sort of relational database with inbuilt versioning
of all its records. Very simple, but effective.
#4 1909 Tony Smith HTML corrections.
#3 1871 Tony Smith First release of specsaver.rb a script to version all "specs"
in your depot. Currently this means, clients/labels/branches
and protections, typemaps and jobspecs. Groups and users to
follow.

It does not currently handle deletion of these objects.
#2 1792 Tony Smith Change URL's to be direct webkeeper links instead of P4DB
#1 1791 Tony Smith Correct case typo in index filename
//guest/tony_smith/perforce/utils/Index.html
#3 544 Tony Smith Deleted Journal parsing scripts as they will be sent out only on
request.
#2 543 Tony Smith Added my Checkpoint/Journal parsing perl module to the depot.
Now supports an OO interface to journal records and to
the parsing in general.
#1 414 Tony Smith First implementations of some of my p4 scripts.