mirror of
https://we.phorge.it/source/phorge.git
synced 2025-01-28 15:38:19 +01:00
38 lines
1.5 KiB
Text
38 lines
1.5 KiB
Text
|
@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
|