Skip to content

Commit

Permalink
Documentation updates.
Browse files Browse the repository at this point in the history
  • Loading branch information
groboclown committed Feb 16, 2015
1 parent 81f482a commit 4624bb3
Show file tree
Hide file tree
Showing 2 changed files with 98 additions and 19 deletions.
98 changes: 97 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

This is the location for the Perforce VCS integration into the [IntelliJ IDEA Community Edition IDE](https://www.jetbrains.com/idea/).

**Currently Supported IDEA versions: 14.1**
**Currently Supported IDEA versions: 13.5 (Android Studio), 14.0 (build 14.2118 and above)**


# Getting Started
Expand Down Expand Up @@ -45,6 +45,102 @@ This is the location for the Perforce VCS integration into the [IntelliJ IDEA Co
under the Version Control.
1. Select the connection type and the parameters,
and click **OK**.


# Connecting to Your Perforce Server

In the Perforce configuration panel, you must choose the way in which the
plugin connects to the Perforce server. There are several methods available.

For any of these methods, the Perforce server may request a password from
you. If you choose the **Save passwords** option, the password will be
stored application-wide, associated with that server and user name.


## Direct Declaration

There are two methods available that allow you to directly declare the
connection parameters, *Client Password* and *Authorization Ticket*.

Both of these connection types require you to enter the server connection
string ("Perforce port") and the username. If a password is required, you will
be prompted for it.

The "Perforce port" is usually just in the form "hostname:port number". SSL
connections will need to use "ssl://hostname:port number".


## Indirect Declaration

Alternatively, you can use connection methods that simulate how the Perforce
command-line clients connect to the server. All of these use the following
standard keys:

* `P4PORT`: server connection string. SSL connections need to use the
"ssl://hostname:port number" format.
* `P4USER`: username used to connect to the server.
* `P4PASSWD`: password used to connect to the server. If not provided,
you may be required to enter it.
* `P4TICKETS`: storage location for the Perforce ticket files. If present,
the plugin assumes that the connection will perform a "p4 login" and
store the associated ticket in that file.
* `P4TRUST`: location of the trust ticket. *Currently not supported.*
* `P4SSLDIR`: directory containing the SSL connection information.
*Currently not supported.*
* `P4CONFIG`: these settings can be loaded from a configuration file.
Note: P4CONFIG settings are only loaded from one file; you can't have
config files referencing other config files.
* `P4CLIENT`: Default client workspace name. You can override this
in the UI.


### Environment Variables

This connection method uses the environment variables that launched the IDE
as the connection properties. For Windows users, it also checks the
registry entries for the corresponding values.

This currently doesn't support Mac OSX local settings.


## Specific P4CONFIG File

Reads the connection settings from a single configuration file.


## Relative P4CONFIG File

This is the only connection method that allows for multiple servers and
clients to be referenced from a single project. This works by finding
a P4CONFIG file (with the name given in the UI) which is in the current
directory, or some parent directory, of each file being referenced.
This replicates how the Perforce command-line tool searches for settings.

For example, with the file name set to `.p4config`, you can put one
copy of this file into each module root directory. Then, each module will
have its files managed in their own client and server.

Some parts of the normal operation will act a bit differently. For instance,
IDEA changelists can be associated with multiple Perforce changelists, if
files from different clients are added to them. You can move files across
servers, but these will be turned into simple add/delete operations
(see [bug #15](https://github.com/groboclown/p4ic4idea/issues/15)).


# Workflow

With your working Perforce connections specified, you can use the IDE
as usual. Editing files will check them out from the server. Moving
or renaming files will trigger a P4 rename operation. Deleting files
will delete them from the server. All edited files will show up in
the IntelliJ change lists, and those will be associated with the
corresponding Perforce change.

From the change lists, you can view a difference against the head
revision. You can also view the file history, and compare different
revisions against each other.

Currently, submitting a changelist is not enabled.


# Status and Todo
Expand Down
19 changes: 1 addition & 18 deletions plugin/META-INF/plugin.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<idea-plugin version="2">
<name>Perforce IDEA Community Integration</name>
<id>PerforceIC</id>
<version>0.3.1</version>
<version>0.3.1.0</version>
<idea-version since-build="IC-135.1286"/>
<category>VCS Integration</category>
<change-notes><![CDATA[
Expand Down Expand Up @@ -48,23 +48,6 @@
operations, and put the changes into the currently selected
IDEA changelist.
</p>
<p><strong>Known Issues</strong></p>
<ul>
<li><em>Connection Settings</em> - trusted ticket files are not used.</li>
<li><em>Revert</em> - Reverting a moved file requires a project file refresh (or changelist refresh) to see it moved into the correct location.</li>
<li><em>Changelist</em> - A file which is edited but not checked out is not processed correctly; it always becomes checked out.</li>
<li><em>Move a file between changelists</em> - Move/add and move/delete files are both put into the moved changelist
when only one is moved. However, this is only reflected in the UI when the changelist view is refreshed.</li>
<li><em>Add/Edit</em> - If a file was edited without telling VCS (edit during offline mode, etc),
then the server is reconnected and the file is added (Alt+Shift+A),
the file is not reflected in the correct changelist. A refresh is needed
to show it. The file cannot be reverted until the refresh happens.</li>
<li><em>Rename / Move</em> - Moving a file will correctly show the old/new files in the changelist, but
it can also incorrectly mark the directory and other files as "Modified without checkout".
Refreshing the changelist fixes this.</li>
<li><em>Errors</em> - Errors need to be localized</li>
</ul>
]]></description>
<depends>com.intellij.modules.vcs</depends>
<vendor url="https://github.com/groboclown/p4ic4idea" email="groboclown@gmail.com">Groboclown</vendor>
Expand Down

0 comments on commit 4624bb3

Please sign in to comment.