a4 - Access the Perforce SCM system following certain conventions
a4 -chpPuqv subcommand [opts] [args]
a4 -V|--version
a4 (--help[=topic] | --plain-help[=topic] | --pod-help[=topic])
a4 is the command-line interface to the A4 source configuration
management system. A4 builds upon p4(1)
by setting certain conventions
and adding certain capabilities. See a4intro(1).
On-line help is available. See SubCommand/HELP.
The following options are accepted (before the subcommand, if any):
See OPTIONS PARSING in the SubCommand::Usage manpage for option parsing rules.
Read a patch file (usually generated by a4 createpatch) from STDIN, and apply the patch to the current client.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The codeline's properties are set according to the specified options. A property is not cleared unless its option is sepcified in the negative.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The workspace's properties are set according to the specified options. A property is not cleared unless its option is sepcified in the negative.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
AltRoots:
property.
The reference build given by the branch of the current client and change-number is copied directly into the current client, generated files and all. ``p4 flush'' is used to make sure that the Perforce database reflects the client's contents.
change-number defaults to the greatest change number for which there is an existing (successfully completed) reference build of the client's branch.
This operation will fail without side-effects if any files already opened in the client would be overwritten.
The prefiles and postfiles files for the current branch in the CFG subtree are renamed to prefiles.bak and postfile.bak, respectively, such that the client view matches the view of the reference build. If desired, you may rename them back and regenerate the view using a4 sync.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Prints the A4 distribution restrictions (that is, the relevant sections of the GPL).
Print a patch file representing the unsubmitted changes to the current client to STDOUT.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
print help for topic
Does basically the same thing as p4 integrate, except that the -b option is filled in automatically, and the integration view is used by default. Additional options and arguments are passed along to p4 integrate.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Each directory in the current workspace is populated with a .p4top symbolic link to the root of the workspace. A .p4env file is created at the top of the workspace, and in every directory containing a .p4props file.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
If the specified child branch is designated fully-merging and contains all
of the changes in the current client's branch (the parent branch), then clone
the child branch into the parent branch using p4 integrate -fdt
and
p4 resolve -at.
If the -s option is specified and the branch is gated, then the operation is atomic, meaning that no other submission to the parent branch can sneak in once the submit lock is obtained.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
A new branch is created according to the conventions of A4.
The branch argument may include the #
and @
wildcards.
You need to do an explicit a4 integrate afterwards in order to populate the branch with its parent's files.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
A new client is created according to the conventions of A4.
The branch argument may include a revision specifier.
The client argument may include the #
and @
wildcards.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Any files found in the current workspace matching any of the specified patterns (in Perforce local syntax) that are not in the ``have'' or ``opened'' list are printed to STDOUT. If no patterns are specified, then the entire workspace is checked.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
print help in plain text for topic
print help in POD for topic
Check that the workspace associated with the specified change passes its presubmit regression, even if it's not on a gated branch. The correct client must be specified via the -c top-level option if it's not the current client.
On-line help is available. See SubCommand/HELP.
A patch is generated based on the unsubmitted changed to the specified client (which must not be the same as the current client), and that patch is applied to the current client.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Create a new reference build based on branch, which may include a change number specification.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Check that the workspace passes its content regression, even if it's not a gated branch. The level argument defaults to 1.
On-line help is available. See SubCommand/HELP.
If no clients or other branches depend on the named branch, then remove its record form the Perforce database. The branch record is automatically unlocked if it is initially locked.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The entire workspace directory removed, and if successful, the client record is deleted. The client record is automatically unlocked if it is initially locked.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
A SUID script is created in the .a4 subdirectory of the user's home directory to allow the Perforce server to initiate a presubmit regression.
On-line help is available. See SubCommand/HELP.
Attempt to obtain the submit lock for the client's branch, and (if successful) run p4 submit with the arguments. The lock is released automatically.
If a change list is specified, then the client must match the client of the change list, or else you will attempt to obtain the wrong lock, and the A4 submit trigger will fail if it is enabled.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The client's configuration is sync'ed, the view is rebuilt according to the updated configuration if any files were updated or -f is specified, and the entire workspace is sync'ed. a4 maketree is also run if any files were updated or -f is specified. client may contain a revision specifier.
The exit status is 0 for no files updated, or 1 for at least one file updated.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The client's configuration is sync'ed, and the view is rebuilt according to the updated configuration if any files were updated or -f is specified. client may contain a revision specifier.
The exit status is 0 for no files updated, or 1 for at least one file updated.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The client's root directory is printed to STDOUT.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
The client's view is rebuilt according to the current contents of the configuration directory.
On-line help is available. See SubCommand/HELP.
The following options are accepted:
Prints the A4 warranty (that is, the relevant sections of the GPL).
a4intro(1), the A4::Ops manpage
The environment variables used by p4 will (as a rule) affect a4 in the same way. In addition, the following environment variables are used:
$^O
, but you should avoid using this default for
branches that generate machine code, because the wrong thing will happen if
you use it, for example, on a machine of the same OS that has a different
processor.
Each mapping consists of the alternate (foreign) directory on the left,
followed by =
, followed by the primary (local) directory on the right.
Both sides should include the trailing directory delimiter.
Up to the first two mappings in which the right side prefixes the primary
root will be used.
If the matching alternate directory contains any back-slashes (), then
any forward slashes (
/
) in the remaining primary path components will be
converted to back-slashes; otherwise, and back-slashes in the remaining path
components will be converted to forward slashes.