@title Arcanist User Guide: Repository Hooks @group userguide Describes how to set up Arcanist as an SVN pre-commit hook. = Installing Arcanist SVN Hooks = You can install Arcanist as an SVN pre-commit hook, to reject commits which contain lint errors. The immediate value of this is that syntax errors won't be committable, but you can block other kinds of badness with appropriate lint engines. To install Arcanist as a pre-commit hook, add this to your svn/hooks/pre-commit: #!/bin/sh /usr/local/bin/php -f /path/to/arcanist/bin/arc svn-hook-pre-commit $@ 1>&2 Make sure you make this file executable, or you'll get an error for every commit with an unhelpful error message. You also need to specify the full path to PHP since SVN nukes ENV before executing scripts. Alternatively you can specify PATH explicitly. If your project is configured to run linters or lint engines which aren't part of Arcanist, specify where to load them from with ##--load-phutil-library##: --load-phutil-library=/path/to/library/root Since SVN commit hooks run without access to a working copy, you'll need to keep one checked out somewhere and reference it with ##--load-phutil-library## if you build new linters or customize lint engines. For example, your hook might look like this: #!/bin/sh /usr/local/bin/php -f /path/to/arcanist/bin/arc svn-hook-pre-commit \ --load-phutil-library=/path/to/custom/lint/engine \ --load-phutil-library=/path/to/custom/unittest/engine \ $@ 1>&2