Why aren't my repository hooks working? They're supposed to invoke external programs, but the invocations never seem to happen.

Before Subversion calls a hook script, it removes all variables - including $PATH on Unix, and %PATH% on Windows - from the environment. Therefore, your script can only run another program if you spell out that program's absolute name.

If you're using Linux or Unix, try running the script "by hand", by following these steps:

  1. Use su, sudo, or something similar to become the user who normally would run the script. This might be httpd or www-data, for example, if you're using Apache; it might be a user like svn if you're running svnserve and a special Subversion user exists. This will make clear any permissions problems that the script might have.
  2. Invoke the script with an empty environment by using the "env" program. Here's an example for the post-commit hook: $ env -./post-commit /var/lib/svn-repos 1234 Note the first argument to "env" is a dash; that's what ensures the environment is empty.
  3. Check your console for errors.