You can add commands and folders to the Tools menu. The tools can then be accessed from the Tools menu in P4V and optionally from context menus. You can export your custom tool definitions to a file from which other P4V users can import them.
P4V launches the specified custom tool in an external process. Perforce settings are exported to the external process as follows: the P4PORT, P4USER, P4CLIENT, P4PASSWORD and P4CHARSET settings in effect for the P4V connection are exported to the external process, plus any other Perforce settings present in the environment in which P4V is running, including command-line arguments specified when P4V was launched and global settings (on Windows machines, settings configured using the p4 set -s command).
If the P4CONFIG environment variable is set, the tool recognizes any P4CONFIG files present in the file hierarchy on which it is operating. Settings in P4CONFIG files override settings in the environment. To ensure that P4CONFIG settings do not override environment settings, check Ignore P4CONFIG files. (For details about config files, refer to the P4 User's Guide.) If you are passing arguments to a custom tools, check Ignore P4CONFIG files to ensure that the server settings used by the custom tool correspond to the values that are passed.
On Macintosh, custom tools are not launched from a shell by default. For tools that must recognize P4CONFIG settings, create a script that launches a shell before invoking the tool, or define P4CONFIG globally (for example, in /etc/profile, /etc/profile.local, or /etc/csh.login). To spawn a shell using Bourne shell, issue the #!/bin/sh command. For the C shell, issue the #!/bin/tcsh command.
Important: To define tools that issue p4 commands, specify "p4" in the Application field and the command and desired arguments (for example, "fix -c %c job000001") in the Arguments field. On Windows machines, you can specify the command and arguments together in the Application field, but if you export the resulting definition to a non-Windows machine, it will not work.
%a | Selected label. |
%b | Selected branch. |
%C, %c | Selected changelists. |
%D, %d | Selected files or folders (depot syntax used for depot files). |
%F, %f | Selected files (workspace syntax used for depot files). |
%i | Selected workspace specifications. |
%J, %j | Selected jobs. |
%O, %o | Depends on which pane has focus: |
When left pane has focus, selected checked out files. | |
When right pane has focus, all checked out files. | |
%P, %p | Selected pending changelists. |
%s | Selected submitted changelists. |
%u | Selected user. |
$c | Current workspace specification. |
$p | Current port. |
$r | Current client workspace root. |
$u | Current user. |
$D | Arguments from prompt dialog. |
$% | Literal '%' character. |
$$ | Literal '$' character. |
mycommand %F
" runs "mycommand arg1 arg2
arg3
" and "mycommand %f
" runs "mycommand arg1;
mycommand arg2; mycommand arg3
".
C:\tmp
, or /tmp
), or specify %f, which uses the directory
of the selected file.(Note: If you specify %f, omit any other values.
For example, %f\temp
is invalid.)