<type>documentation</type>
<domain>versioncontrol</domain>
<id>perforce</id>
<title>Perforce</title>
<date>$Date: 2006-05-24 22:53:07 -0400 (Wed, 24 May 2006) $</date>
<version>$Revision: 13098 $</version>
<product>pro+</product>

Wing's Perforce integration requires the ``p4`` command line executable to be installed
separately from Wing. Please see http://www.perforce.com for information about Perforce.
The ``p4`` executable may either be in your path or set with the `Version Control >
Perforce > Perforce Executable
<script:show_preferences_gui#prefname="versioncontrol.perforce.executable">`__ preference.

Wing's ``Perforce`` integration is disabled by default and must be enabled with the
`Version Control > Perforce > Active
<script:show_preferences_gui#prefname="versioncontrol.perforce.active">`__ preference.

Wing finds the Perforce working directory by executing ``p4 client -o`` in the environment
defined in `Project Properties <ref:proj/project-properties>`__, when a project is
opened or the environment is changed. The client specification must be defined outside of
Wing.

Perforce defines the following command, in addition to those documented
in `Common Version Control Operations <ref:versioncontrol/common-operations>`__:

**Sync** updates the client work space with changes from the depot.

**Edit** prepare files for editing and makes any editor the file is opened in writable.
Note that ``Revert`` on an unmodified file that's opened for editing will release the file
from edit status.

**Sync Project** updates all client work space directories project with changes from the
depot.

**Configuration Details**

If the ``Project Home Directory`` project property is set to a value outside of the
Perforce tree, it may be necessary to add ``-d pathname`` with the appropriate pathname
for your configuration to the preference `Version Control > Perforce > Extra Global
Arguments
<script:show_preferences_gui#prefname="versioncontrol.perforce.extra-global-args">`__.

If you usually use the Perforce GUI, you may need to start up the GUI before the
environment used by the ``p4`` executable is set up properly.
