<html><head><title>VCP::Source::p4 - A Perforce p4 repository source</title></head><body><h1><a name="NAME">NAME
</a></h1><p>VCP::Source::p4 - A Perforce p4 repository source
<p><hr><h1><a name="SYNOPSIS">SYNOPSIS
</a></h1><pre> vcp p4://depot/...@10 # all files after change 10 applied
vcp p4://depot/...@1,10 # changes 1..10
vcp p4://depot/...@-2,10 # changes 8..10
vcp p4://depot/...@1,#head # changes 1..#head
vcp p4://depot/...@-2,#head # changes 8..10
vcp p4:...@-2,#head # changes 8..10, if only one depot
</pre><p>To specify a user name of 'user', P4PASSWD 'pass', and port 'host:1666',
use this syntax:
<pre> vcp p4:user(client)password@host:1666:files
</pre><p>Note: the password will be passed in the environment variable P4PASSWD
so it shouldn't show up in error messages. This means that a password
specified in a P4CONFIG file will override the password you set on the
command line. This is a bug. User, client and the server string will be
passed as command line options to make them show up in error output.
<p>You may use the P4... environment variables instead of any or all of the
fields in the p4: repository specification. The repository spec
overrides the environment variables.
<p><hr><h1><a name="DESCRIPTION">DESCRIPTION
</a></h1><p>Driver to allow <a href="../../vcp.html">vcp</a> to extract files from a
<a href="http://perforce.com/">Perforce</a> repository.
<p>Note that not all metadata is extracted: users, clients and job tracking
information is not exported, and only label names are exported.
<p>Also, the 'time' and 'mod_time' attributes will lose precision, since
p4 doesn't report them down to the minute. Hmmm, seems like p4 never
sets a true mod_time. It gets set to either the submit time or the
sync time. From <code>p4 help client</code>:
<pre> modtime Causes 'p4 sync' to force modification time
to when the file was submitted.
</pre><pre> nomodtime * Leaves modification time set to when the
file was fetched.
</pre><p><hr><h1><a name="OPTIONS">OPTIONS
</a></h1><dl><dt><a name="_b_bootstrap_"><strong><p>-b, --bootstrap
</strong></a><pre> -b '...'
--bootstrap='...'
-b file1[,file2[,...]]
--bootstrap=file1[,file2[,...]]
</pre><dd>(the <code>...</code> there is three periods, a
<a>Regexp::Shellish</a> wildcard borrowed from <code>p4</code>
path syntax).
<p>Forces bootstrap mode for an entire export (-b '...') or for certain
files. Filenames may contain wildcards, see <a>Regexp::Shellish</a> for
details on what wildcards are accepted.
<p>Controls how the first revision of a file is exported. A bootstrap
export contains the entire contents of the first revision in the revision
range. This should only be necessary when exporting for the first time.
<p>An incremental export contains a digest of the revision preceding the first
revision in the revision range, followed by a delta record between that
revision and the first revision in the range. This allows the destination
import function to make sure that the incremental export begins where the
last export left off.
<p>The default is decided on a per-file basis: if the first revision in the
range is revision #1, the full contents are exported. Otherwise an
incremental export is done for that file.
<p>This option is necessary when exporting only more recent revisions from
a repository.
<dt><a name="_r_rev_root_"><strong><p>-r, --rev-root
</strong></a><dd><b>Experimental</b>.
<p>Falsifies the root of the source tree being extracted; files will
appear to have been extracted from some place else in the hierarchy.
This can be useful when exporting RevML, the RevML file can be made
to insert the files in to a different place in the eventual destination
repository than they existed in the source repository.
<p>The default <code>rev-root</code> is the file spec up to the first path segment
(directory name) containing a wildcard, so
<pre> p4:/a/b/c...
</pre><p>would have a rev-root of <code>/a/b</code>.
<p>In direct repository-to-repository transfers, this option should not be
necessary, the destination filespec overrides it.
</dl><p><hr><h1><a name="METHODS">METHODS
</a></h1><dl><dt><a name="new_"><strong><p>new
</strong></a><dd>Creates a new instance of a VCP::Source::p4. Contacts the p4d using the p4
command and gets some initial information ('p4 info' and 'p4 labels').
</dl><p><hr><h1><a name="SEE_ALSO">SEE ALSO
</a></h1><p><a href="../Dest/p4.html">VCP::Dest::p4</a>, <a href="../../vcp.html">vcp</a>.
<p><hr><h1><a name="AUTHOR">AUTHOR
</a></h1><p>Barrie Slaymaker <barries@slaysys.com>
<p><hr><h1><a name="COPYRIGHT">COPYRIGHT
</a></h1><p>Copyright (c) 2000, 2001, 2002 Perforce Software, Inc.
All rights reserved.
<p>See <a href="../License.html">VCP::License</a> (<code>vcp help license</code>) for the terms of use.
<p><hr><i><font size="-1">Last updated: Fri Aug 2 11:42:10 2002</font></i></body></html>