📄 perforce.html.orig
字号:
<html><head><title>Perforce Tasks</title></head><body><h1>Perforce Tasks User Manual</h1><p>by</p><ul> <li>Les Hughes (<a href="mailto:leslie.hughes@rubus.com">leslie.hughes@rubus.com</a>)</li> <li>Kirk Wylie (<a href="mailto:kirk@radik.com">kirk@radik.com</a>)</li></ul><p>Version 1.1 - 2001/01/09</p><hr><h2>Contents</h2><ul> <li><a href="#intro">Introduction</a></li> <li><a href="#tasks">The Tasks</a></li> <li><a href="#changes">Change History</a></li></ul><br><h2><a name="intro">Introduction</a></h2><p>These tasks provide an interface to the <a href="http://www.perforce.com" target="_top">Perforce</a> SCM.The <code>org.apache.tools.ant.taskdefs.optional.perforce</code> package consists of a simple framework to support p4 functionality as well as some Ant tasks encapsulating frequently used (by me :-) p4 commands. However, the addition of new p4 commands is a pretty simple task (see the source). Although it is possible to use these commands on the desktop, they were primarily intended to be used by automated build systems.</p><p><b>Note:</b> These tasks require the <a href="http://jakarta.apache.org/oro" target="_top">oro 2.0.XXX</a> regularexpression package. Simply download this package and copy the jakarta-oro-2.0.XXX.jar file into Ant's lib directory.You will also need the Perforce client executable (p4 or p4.exe but not p4win.exe) in your path.</p><h2><a name="tasks">The Tasks</a></h2><table border="0" cellspacing="0" cellpadding="3"> <tr> <td><a href="#p4sync">P4Sync</a></td> <td>Synchronise a workspace to a depot</td> </tr> <tr> <td><a href="#p4change">P4Change</a></td> <td>Request a new changelist from the Perforce server</td> </tr> <tr> <td><a href="#p4edit">P4Edit</a></td> <td>Open files for edit (checkout)</td> </tr> <tr> <td><a href="#p4submit">P4Submit</a></td> <td>Submit a changelist to the Perforce server (checkin)</td> </tr> <tr> <td><a href="#p4have">P4Have</a></td> <td>List current files in client view, useful for reporting</td> </tr> <tr> <td><a href="#p4label">P4Label</a></td> <td>Create a label reflecting files in the current workspace</td> </tr> <tr> <td><a href="#p4counter">P4Counter</a></td> <td>Obtain or set the value of a counter</td> </tr> <tr> <td><a href="#p4reopen">P4Reopen</a></td> <td>Move files between changelists</td> </tr> <tr> <td><a href="#p4revert">P4Revert</a></td> <td>Revert files</td> </tr> <tr> <td><a href="#p4add">P4Add</a></td> <td>Add files</td> </tr></table><h3>General P4 Properties</h3><p>Each p4 task requires a number of settings, either through build-wide properties, individual attributes or environment variables. These are</p><table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Property</b></td> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Env Var</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Default</b></td> </tr> <tr> <td valign="top">p4.port</td> <td valign="top">port</td> <td valign="top">P4PORT</td> <td valign="top">The p4d server and port to connect to</td> <td valign="top">perforce:1666</td> </tr> <tr> <td valign="top">p4.client</td> <td valign="top">client</td> <td valign="top">P4CLIENT</td> <td valign="top">The p4 client spec to use</td> <td valign="top">The logged in username</td> </tr> <tr> <td valign="top">p4.user</td> <td valign="top">user</td> <td valign="top">P4USER</td> <td valign="top">The p4 username</td> <td valign="top">The logged in username</td> </tr><tr> <td valign="top" align="center">--</td> <td valign="top">view</td> <td valign="top" align="center">--</td> <td valign="top">The client, branch or label view to operate upon. See the p4 user guide for more info.</td> <td valign="top">//...</td> </tr></table><p>Your local installation of Perforce may require other settings (e.g. P4PASSWD, P4CONFIG). At the moment, these can only be set outside of Ant, as environment variables.</p><p>Additionally, you may also specify the following attributes:</p><p><table border="1" cellpadding="2" cellspacing="0"><tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td></tr><tr> <td valign="top">failonerror</td> <td valign="top">Specifies whether to stop the build (<code>true</code>|<code>yes</code>|<code>on</code>) or keep going (<code>false</code>|<code>no</code>|<code>off</code>) if an error is returned from the p4 command.</td> <td valign="top">No; defaults to true.</td> </tr></table></p><h3>Examples</h3><p>Setting in the environment:-</p><p>(Unix csh)</p><pre>setenv P4PORT myperforcebox:1666</pre><p>(Unix sh et al)</p><pre>P4USER=myp4userid; export P4USER</pre><p>Using build properties:-</p><pre><property name="p4.client" value="nightlybuild"/></pre><p>Using task attributes:-</p><pre><p4Whatever port="myserver:1666" client="smoketest" user="smoketestdude" . . ./></pre><p>For more information regarding the underlying 'p4' commands you are referred to the Perforce Command Referenceavailable from the <a href="http://www.perforce.com/" target="_top">Perforce website</a>.</p><h3>Taskdefs</h3><p>Standard taskdefs (for you to copy'n'paste) -- normally this is done automatically if you install this optional task.</p><pre> <taskdef name="p4sync" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Sync"/> <taskdef name="p4change" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Change"/> <taskdef name="p4edit" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Edit"/> <taskdef name="p4submit" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Submit"/> <taskdef name="p4have" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Have"/> <taskdef name="p4label" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Label"/> <taskdef name="p4counter" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Counter"/> <taskdef name="p4reopen" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Reopen"/> <taskdef name="p4revert" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Revert"/> <taskdef name="p4add" classname="org.apache.tools.ant.taskdefs.optional.perforce.P4Add"/></pre><hr><h2>Task Descriptions</h2><h2><a name="p4sync">P4Sync</a></h2><h3>Description:</h3><p>Synchronize the current workspace with the depot.</p><h3>Parameters</h3><table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">force</td> <td valign="top">force a refresh of files, if this attribute has been set.</td> <td valign="top" align="center">no - if ommitted, it will be off, otherwise a refresh will be forced.</td> </tr><tr> <td valign="top">label</td> <td valign="top">sync client to label</td> <td valign="top" align="center">no</td> </tr></table><h3>Examples</h3><pre><p4sync label="nightlybuild-0.0123" force="foo"/><p4sync view="//depot/projects/projectfoo/main/src/..."/></pre><hr><h2><a name="p4change">P4Change</a></h2><h3>Description:</h3><p>Request a new changelist from the Perforce server. This task sets the ${p4.change} property which can then be passed to <A HREF="#p4submit">P4Submit</A>,<A HREF="#p4edit">P4Edit</A>, or <a HREF="#p4add">P4Add</A>.</p><h3>Parameters</h3><table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">description</td> <td valign="top">Description for ChangeList. If none specified, it will default to "AutoSubmit By Ant"</td> <td valign="top" align="center">No.</td> </tr></table><h3>Examples</h3><pre><p4change description="Change Build Number in Script"></pre><hr><h2><a name="p4edit">P4Edit</a></h2><h3>Description:</h3><p>Open file(s) for edit. P4Change should be used to obtain a new changelist for P4Edit as,although P4Edit can open files to the default change, P4Submit cannot yet submit it.</p><h3>Parameters</h3><table border="1" cellpadding="2" cellspacing="0"> <tr> <td valign="top"><b>Attribute</b></td> <td valign="top"><b>Description</b></td> <td align="center" valign="top"><b>Required</b></td> </tr> <tr> <td valign="top">view</td> <td valign="top">The filespec to request to edit</td> <td valign="top" align="center">Yes</td> </tr> <tr> <td valign="top">change</td> <td valign="top">An existing changelist number to assign files to.</td> <td valign="top" align="center">No, but see above.</td> </tr></table><h3>Examples</h3><pre><p4edit view="//depot/projects/projectfoo/main/src/Blah.java..." change="${p4.change}"/></pre><hr><h2><a name="p4submit">P4Submit</a></h2>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -