- <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 p4 wildcard implemented by
- <a>Regexp::Shellish</a>.
-
- <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="_follow_branch_into_"><strong><p>--follow-branch-into
-
- </strong></a><dd>Causes VCP to notice "branch into" messages in the filelog and, if the
- target revision number is #1, add the target file to the list of exported
- files. This usually needs a --rev-root option to set the rev root to
- be high enough in the directory tree to include all branches (it's an
- error to export a file that is not under the rev root).
-
- <dt><a name="_r_rev_root_"><strong><p>-r, --rev-root
-
- </strong></a><dd>Sets the "revisions" root of the source tree being extracted; without this
- option, VCP assumes that you are extracting the directory tree ending in the
- last path segment in the filespec without a wildcard. This allows you to
- specify a shorter root directory, which can be useful especially with
- --follow-branch-into, since branches may often lead off from the current
- directory to peer directories or even in to entirely different trees.
-
- <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="LIMITATIONS">LIMITATIONS
-
- </a></h1><p>Treats each branched file as a separate branch with a unique branch_id,
- although files that are branched together should end up being submitted
- together in the destination repository due to change number aggregation.
-
- <p>Ignores branch specs for now. There may be an option to enable
- automatic use of branch specs because most are probably well behaved.
- However, in the event of a branch spec being altered after the original
- branch, this could lead to odd results. Not sure how useful branch
- specs are vs. how likely a problem this is to be. We may also want to
- support "external" branch specs to allow deleted branch specs to be
- used.
-
- <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 Nov 8 13:07:23 2002</font></i></body></html>