NAME
arc - arcanist, a code review and revision management utilitySYNOPSIS
arc command [options] [args] This help file provides a detailed command reference.COMMAND REFERENCE
alias alias command alias command target -- [options]Supports: cli Create an alias from
command to target (optionally, with options). For
example:
...will create a new 'arc' command, 'arc fpatch', which invokes 'arc patch
--force ...' when run. NOTE: use "--" before specifying options!
If you start an alias with "!", the remainder of the alias will be
invoked as a shell command. For example, if you want to implement 'arc ls',
you can do so like this:
You can now run "arc ls" and it will behave like "ls". Of
course, this example is silly and would make your life worse.
You can not overwrite builtins, including 'alias' itself. The builtin will
always execute, even if it was added after your alias.
To remove an alias, run:
Without any arguments, 'arc alias' will list aliases.
amend [--revision revision_id] [--show]
arc alias fpatch patch -- --force
arc alias ls '!ls'
arc alias fpatch
Supports: git, hg Amend the working copy,
synchronizing the local commit message from Differential.
Supported in Mercurial 2.2 and newer.
- --revision revision_id
Use the message from a specific revision. If
you do not specify a revision, arc will guess which revision is in the working
copy.
- --show
Show the amended commit message, without
modifying the working copy.
There's only one way to find out...
backout
Reverts/backouts on a previous commit.
Supports: git, hg
bookmark [options]
bookmark name [start]
Command is used like this: arc backout
<commithash> | <diff revision> Entering a differential revision
will only work if there is only one commit associated with the revision. This
requires your working copy is up to date and that the commit exists in the
working copy.
Supports: hg Alias for arc feature.
- --by-status
Sort branches by status instead of time.
- --output format
With 'json', show features in machine-readable
JSON format.
- --view-all
Include closed and abandoned revisions.
Supports: git Alias for arc feature.
- --by-status
Sort branches by status instead of time.
- --output format
With 'json', show features in machine-readable
JSON format.
- --view-all
Include closed and abandoned revisions.
Supports: git, hg, svn Open a file or object
(like a task or revision) in your web browser.
Set the 'browser' value using 'arc set-config' to select a browser. If no
browser is set, the command will try to guess which browser to use.
$ arc browse README # Open a file in Diffusion. $ arc browse T123 # View a task. $ arc browse HEAD # View a symbolic commit.
- --branch branch_name
Default branch name to view on server.
Defaults to "master".
- --force
Open arguments as paths, even if they do not
exist in the working copy.
Supports: http, https Allows you to make a raw
Conduit method call:
This workflow is primarily useful for writing scripts which integrate with
Phabricator. Examples:
close task_id [options]
- Run this command from a working directory. - Call parameters are REQUIRED and read as a JSON blob from stdin. - Results are written to stdout as a JSON blob.
$ echo '{}' | arc call-conduit conduit.ping $ echo '{"phid":"PHID-FILE-xxxx"}' | arc call-conduit file.download
Close a task or otherwise update its status.
- --list-statuses
Show available status options and exit.
- --message comment, -m comment
Provide a comment with your status
change.
- --status status, -s status
Specify a new status. Valid status options can
be seen with the `list-statuses` argument.
close-revision [options] revision
Supports: git, hg, svn Close a revision which
has been committed (svn) or pushed (git, hg). You should not normally need to
do this: arc commit (svn), arc amend (git, hg), arc land (git, hg), or
repository tracking on the master remote repository should do it for you.
However, if these mechanisms have failed for some reason you can use this
command to manually change a revision status from "Accepted" to
"Closed".
- --finalize
Close only if the repository is untracked and
the revision is accepted. Continue even if the close can't happen. This is a
soft version of '' used by other workflows.
- --quiet
Do not print a success message.
Supports: svn Commit a revision which has been
accepted by a reviewer.
- --revision revision_id
Commit a specific revision. If you do not
specify a revision, arc will look for committable revisions.
- --show
Show the command which would be issued, but do
not actually commit anything.
Supports: svn, git, hg Cover your...
professional reputation. Show blame for the lines you changed in your working
copy (svn) or since some commit (hg, git). This will take a minute because
blame takes a minute, especially under SVN.
- --rev revision
Supports: git, hg Cover changes since a
specific revision.
Supports: git, svn, hg Generate a Differential
diff or revision from local changes.
Under git and mercurial, you can specify a commit (like HEAD^^^ or
master) and Differential will generate a diff against the merge base of
that commit and your current working directory parent.
Under svn, you can choose to include only some of the modified files in the
working copy in the diff by specifying their paths. If you omit paths, all
changes are included in the diff.
- --add-all, -a
Automatically add all unstaged and uncommitted
files to the commit.
- --advice
Require excuse for lint advice in addition to
lint warnings and errors.
- --allow-untracked
Skip checks for untracked files in the working
copy.
- --amend-all
When linting git repositories, amend HEAD with
all patches suggested by lint without prompting.
- --amend-autofixes
When linting git repositories, amend HEAD with
autofix patches suggested by lint without prompting.
- --apply-patches
Apply patches suggested by lint to the working
copy without prompting.
- --base rules
Supports: git, hg Additional rules for
determining base revision.
- --browse
After creating a diff or revision, open it in
a web browser.
- --cache bool
0 to disable lint cache, 1 to enable (default).
- --cc usernames
When creating a revision, add CCs.
- --coverage
Always enable coverage information.
- --create
Always create a new revision.
- --edit
Supports: git, hg When updating a revision
under git, edit revision information before updating.
- --encoding encoding
Attempt to convert non UTF-8 hunks into
specified encoding.
- --excuse excuse
Provide a prepared in advance excuse for any
lints/tests shall they fail.
- --head commit
Supports: git Specify the end of the commit
range. This disables many Arcanist/Phabricator features which depend on having
access to the working copy.
- --ignore-unsound-tests
Ignore unsound test failures without
prompting.
- --json
Emit machine-readable JSON. EXPERIMENTAL!
Probably does not work!
- --less-context
Normally, files are diffed with full context:
the entire file is sent to Differential so reviewers can 'show more' and see
it. If you are making changes to very large files with tens of thousands of
lines, this may not work well. With this flag, a diff will be created that has
only a few lines of context.
- --lintall
Raise all lint warnings, not just those on
lines you changed.
- --message message, -m message
When updating a revision, use the specified
message instead of prompting.
- --message-file file, -F file
When creating a revision, read revision
information from this file.
- --never-apply-patches
Never apply patches suggested by lint.
- --no-amend
Never amend commits in the working copy with
lint patches.
- --no-coverage
Always disable coverage information.
- --no-diff
Only run lint and unit tests. Intended for
internal use.
- --nolint
Do not run lint.
- --nounit
Do not run unit tests.
- --only
Only generate a diff, without running lint,
unit tests, or other auxiliary steps. See also --preview.
- --only-new bool
Display only lint messages not present in the
original code.
- --plan-changes
Create or update a revision without requesting
a code review.
- --preview
Instead of creating or updating a revision,
only create a diff, which you may later attach to a revision. This still runs
lint unit tests. See also --only.
- --raw
Read diff from stdin, not from the working
copy. This disables many Arcanist/Phabricator features which depend on having
access to the working copy.
- --raw-command command
Generate diff by executing a specified
command, not from the working copy. This disables many Arcanist/Phabricator
features which depend on having access to the working copy.
- --reviewers usernames
When creating a revision, add reviewers.
- --skip-binaries
Do not upload binaries (like images).
- --skip-staging
Do not copy changes to the staging area.
- --uncommitted
Supports: hg Suppress warning about
uncommitted changes.
- --update revision_id
Always update a specific revision.
- --use-commit-message commit, -C commit
Supports: git Read revision information from a
specific commit.
- --verbatim
Supports: hg, git When creating a revision,
try to use the working copy commit message verbatim, without prompting to edit
it. When updating a revision, update some fields from the local commit
message.
Supports: filesystems Download a file to local
disk, e.g.:
$ arc download F33 # Download file 'F33'
- --as name
Save the file with a specific name rather than
the default.
- --show
Write file to stdout instead of to disk.
Supports: svn, git, hg Export the local
changeset (or a Differential changeset) to a file, in some format: git
diff ( --git), unified diff ( --unified), or arc bundle
(--arcbundle path) format.
- --arcbundle file
Export change as an arc bundle. This format
can represent all changes. These bundles can be applied with 'arc
patch'.
- --diff diff_id
Instead of exporting changes from the working
copy, export them from a Differential diff.
- --encoding encoding
Attempt to convert non UTF-8 patch into
specified encoding.
- --git
Export change as a git patch. This format is
more complete than unified, but less complete than arc bundles. These patches
can be applied with 'git apply' or 'arc patch'.
- --revision revision_id
Instead of exporting changes from the working
copy, export them from a Differential revision.
- --unified
Export change as a unified patch. This format
is less complete than git patches or arc bundles. These patches can be applied
with 'patch' or 'arc patch'.
Supports: git, hg A wrapper on 'git branch' or
'hg bookmark'.
Without name, it lists the available branches and their revision status.
With name, it creates or checks out a branch. If the branch name
doesn't exist and is in format D123 then the branch of revision D123 is
checked out. Use start to specify where the new branch will start. Use
'arc.feature.start.default' to set the default feature start location.
- --by-status
Sort branches by status instead of time.
- --output format
With 'json', show features in machine-readable
JSON format.
- --view-all
Include closed and abandoned revisions.
In the first form, list objects you've
flagged. You can provide the names of one or more objects (Maniphest tasks
T?[7m#, Differential revisions D?[m#, Diffusion references rXXX???, or PHIDs
PHID-XXX-???) to print only flags for those objects.
In the second form, clear an existing flag on one object.
In the third form, create or update a flag on one object. Color defaults to blue
and note to empty, but if you omit both you must pass --edit.
- --clear
Delete the flag on an object.
- --color color
Set the color of a flag.
- --edit
Edit the flag on an object.
- --note note
Set the note on a flag.
Supports: cli Reads an arc configuration
option. With no argument, reads all options.
With --verbose, shows detailed information about one or more options.
- --verbose
Show detailed information about options.
Supports: english Shows this help. With
command, shows help about a specific command.
- --full
Print detailed information about each
command.
Supports: http, https Installs Conduit
credentials into your ~/.arcrc for the given install of Phabricator. You need
to do this before you can use 'arc', as it enables 'arc' to link your
command-line activity with your account on the web. Run this command from
within a project directory to install that project's certificate, or specify
an explicit URI (like "https://phabricator.example.com/").
land [options] [ref]
Supports: git, hg
Publish an accepted revision after review. This command is the last step in the
standard Differential pre-publish code review workflow.
This command merges and pushes changes associated with an accepted revision that
are currently sitting in ref, which is usually the name of a local
branch. Without ref, the current working copy state will be used.
Under Git: branches, tags, and arbitrary commits (detached HEADs) may be landed.
Under Mercurial: branches and bookmarks may be landed, but only onto a target of
the same type. See T3855.
The workflow selects a target branch to land onto and a remote where the change
will be pushed to.
A target branch is selected by examining these sources in order:
A remote is selected by examining these sources in order:
After selecting a target branch and a remote, the commits which will be landed
are printed.
With --preview, execution stops here, before the change is merged.
The change is merged with the changes in the target branch, following these
rules:
In repositories with mutable history or with --squash, this will perform
a squash merge (the entire branch will be represented as one commit after the
merge).
In repositories with immutable history or with --merge, this will perform
a strict merge (a merge commit will always be created, and local commits will
be preserved).
The resulting commit will be given an up-to-date commit message describing the
final state of the revision in Differential.
In Git, the merge occurs in a detached HEAD. The local branch reference (if one
exists) is not updated yet.
With --hold, execution stops here, before the change is pushed.
The change is pushed into the remote.
Consulting mystical sources of power, the workflow makes a guess about what
state you wanted to end up in after the process finishes and the working copy
is put into that state.
The branch which was landed is deleted, unless the --keep-branch flag was
passed or the landing branch is the same as the target branch.
- the B<--onto> flag; - the upstream of the current branch, recursively (Git only); - the I<arc.land.onto.default> configuration setting; - or by falling back to a standard default: - "master" in Git; - "default" in Mercurial.
- the B<--remote> flag; - the upstream of the current branch, recursively (Git only); - or by falling back to a standard default: - "origin" in Git; - the default remote in Mercurial.
- --delete-remote
Delete the feature branch in the remote after
landing it.
- --hold
Prepare the change to be pushed, but do not
actually push it.
- --keep-branch
Keep the feature branch after pushing changes
to the remote (by default, it is deleted).
- --merge
Supports: git Perform a --no-ff merge, not a
--squash merge. If the project is marked as having an immutable history, this
is the default behavior.
- --onto master
Land feature branch onto a branch other than
the default ('master' in git, 'default' in hg). You can change the default by
setting 'arc.land.onto.default' with `arc set-config` or for the entire
project in .arcconfig.
- --preview
Prints the commits that would be landed. Does
not actually modify or land the commits.
- --remote origin
Push to a remote other than the default
('origin' in git).
- --revision id
Use the message from a specific revision,
rather than inferring the revision based on branch content.
- --squash
Perform a --squash merge, not a --no-ff merge.
If the project is marked as having a mutable history, this is the default
behavior.
- --update-with-merge
Supports: git When updating the feature
branch, use merge instead of rebase. This is the default behavior. Setting
arc.land.update.default to 'merge' can also be used to make this the
default.
- --update-with-rebase
Supports: git When updating the feature
branch, use rebase instead of merge. This might make things work better in
some cases. Set arc.land.update.default to 'rebase' to make this the
default.
Supports: libphutil Create or update a
libphutil library, generating required metadata files like init.php.
- --all
Drop the module cache before liberating. This
will completely reanalyze the entire library. Thorough, but slow!
- --force-update
Force the library map to be updated, even in
the presence of lint errors.
- --library-name name
Use a flag for library name rather than
awaiting user input.
Supports: git, svn, hg Run static analysis on
changes to check for mistakes. If no files are specified, lint will be run on
all files which have been modified.
- --amend-all
When linting git repositories, amend HEAD with
all patches suggested by lint without prompting.
- --amend-autofixes
When linting git repositories, amend HEAD with
autofix patches suggested by lint without prompting.
- --apply-patches
Apply patches suggested by lint to the working
copy without prompting.
- --cache bool
0 to disable cache, 1 to enable. The default value is determined by 'arc.lint.cache' in configuration, which defaults to off. See notes in 'arc.lint.cache'.
- --engine classname
Override configured lint engine for this
project.
- --everything
Lint all files in the project.
- --lintall
Show all lint warnings, not just those on
changed lines. When paths are specified, this is the default behavior.
- --never-apply-patches
Never apply patches suggested by lint.
- --only-changed
Show lint warnings just on changed lines. When
no paths are specified, this is the default. This differs from only-new in
cases where line modifications introduce lint on other unmodified lines.
- --only-new bool
Supports: git, hg Display only messages not
present in the original code.
- --outfile path
Output the linter results to a file. Defaults
to stdout.
- --output format
With 'summary', show lint warnings in a more
compact format. With 'json', show lint warnings in machine-readable JSON
format. With 'none', show no lint warnings. With 'compiler', show lint
warnings in suitable for your editor. With 'xml', show lint warnings in the
Checkstyle XML format.
- --rev revision
Supports: git, hg Lint changes since a
specific revision.
- --severity string
Set minimum message severity. One of:
'advice', 'autofix', 'warning', 'error', 'disabled'. Defaults to
'advice'.
Supports: cli List the available and
configured linters, with information about what they do and which versions are
installed.
if name is provided, the linter with that name will be displayed.
- --search search
Search for linters. Search is
case-insensitive, and is performedagainst name and description of each
linter.
- --verbose
Show detailed information, including
options.
Supports: git, svn, hg List your open
Differential revisions.
paste [--title title] [--lang language] [--json]
paste id [--json]
Supports: text Share and grab text using the
Paste application. To create a paste, use stdin to provide the text:
To retrieve a paste, specify the paste ID:
$ cat list_of_ducks.txt | arc paste
$ arc paste P123
- --json
Output in JSON format.
- --lang language
Language for syntax highlighting.
- --title title
Title for the paste.
Supports: git, svn, hg Apply the changes in a
Differential revision, patchfile, or arc bundle to the working copy.
- --arcbundle bundlefile
Apply changes from an arc bundle generated
with 'arc export'.
- --diff diff_id
Apply changes from a Differential diff.
Normally you want to use --revision to get the most recent changes, but you
can specifically apply an out-of-date diff or a diff which was never attached
to a revision by using this flag.
- --encoding encoding
Attempt to convert non UTF-8 patch into
specified encoding.
- --force
Do not run any sanity checks.
- --nobranch
Supports: git, hg Normally, a new branch (git)
or bookmark (hg) is created and then the patch is applied and committed in the
new branch/bookmark. This flag cherry-picks the resultant commit onto the
original branch and deletes the temporary branch.
- --nocommit
Supports: git, hg Normally under git/hg, if
the patch is successful, the changes are committed to the working copy. This
flag prevents the commit.
- --patch patchfile
Apply changes from a git patchfile or unified
patchfile.
- --revision revision_id
Apply changes from a Differential revision,
using the most recent diff that has been attached to it. You can run 'arc
patch D12345' as a shorthand.
- --skip-dependencies
Supports: git, hg Normally, if a patch has
dependencies that are not present in the working copy, arc tries to apply them
as well. This flag prevents such work.
- --update
Supports: git, svn, hg Update the local
working copy before applying the patch.
Supports: cli Sets an arc configuration
option.
Options are either user (apply to all arc commands you invoke from the current
user) or local (apply only to the current working copy). By default, user
configuration is written. Use --local to write local configuration.
User values are written to '~/.arcrc' on Linux and Mac OS X, and an undisclosed
location on Windows. Local values are written to an arc directory under either
.git, .hg, or .svn as appropriate.
- --local
Set a local config value instead of a user
one.
Supports: bash, etc. Implements shell
completion. To use shell completion, source the appropriate script from
'resources/shell/' in your .shellrc.
- --current cursor_position
Current term in the argument list being
completed.
Start tracking work in Phrequent.
stop [--note note] [objects]
Stop tracking work in Phrequent.
- --note note
A note to attach to the tracked time.
View all assigned tasks.
- --limit n
Limit the amount of tasks outputted, default
is all.
- --order task_order
Arrange tasks based on priority, created, or
modified, default is priority.
- --owner username
Only show tasks assigned to the given
username, also accepts @all to show all, default is you.
- --status task_status
Show tasks that are open or closed, default is
open.
- --unassigned
Only show tasks that are not assigned
(upforgrabs).
time
Show what you're currently tracking in
Phrequent.
todo summary [options]
Quickly create a task for yourself.
- --browse
After creating the task, open it in a web
browser.
- --cc cc, -C cc
Other users to CC on the new task.
- --project project
Projects to assign to the task.
unit [options] [paths]
unit [options] --rev [rev]
Supports: git, svn, hg Run unit tests that
cover specified paths. If no paths are specified, unit tests covering all
modified files will be run.
- --coverage
Always enable coverage information.
- --detailed-coverage
Show a detailed coverage report on the CLI.
Implies --coverage.
- --engine classname
Override configured unit engine for this
project.
- --everything
Run every test.
- --json
Report results in JSON format.
- --no-coverage
Always disable coverage information.
- --output format
With 'full', show full pretty report
(Default). With 'json', report results in JSON format. With 'ugly', use uglier
(but more efficient) JSON formatting. With 'none', don't print results.
- --rev revision
Supports: git, hg Run unit tests covering
changes since a specific revision.
- --target phid
(PROTOTYPE) Record a copy of the test results on the specified
Harbormaster build target.
- --ugly
With --json, use uglier (but more efficient)
formatting.
Supports: cli Upgrade arcanist and libphutil
to the latest versions.
upload file [file ...] [--json]
Supports: filesystems Upload a file from local
disk.
- --json
Output upload information in JSON
format.
- --temporary
Mark the file as temporary. Temporary files
will be deleted automatically after 24 hours.
Supports: cli Shows the current version of
arcanist.
which [options] (svn)
which [options] [commit] (hg, git)
Supports: svn, git, hg Shows which repository
the current working copy corresponds to, which commits 'arc diff' will select,
and which revision is in the working copy (or which revisions, if more than
one matches).
- --any-status
Show committed and abandoned revisions.
- --base rules
Supports: git, hg Additional rules for
determining base revision.
- --head commit
Supports: git Specify the end of the commit
range to select.
- --show-base
Supports: git, hg Print base commit only and
exit.
OPTION REFERENCE
- --trace
- --no-ansi
- --ansi
- --load-phutil-library=/path/to/library
- --conduit-uri uri
- --conduit-token token
- --conduit-version version
- --conduit-timeout timeout
- --config key=value
- --skip-arcconfig
- --arcrc-file filename
2016-10-24 |