Index: configure.in =================================================================== --- configure.in (revision 6898) +++ configure.in (working copy) @@ -422,6 +422,9 @@ AC_DEFINE_UNQUOTED(SVN_PATH_LOCAL_SEPARATOR, '/', [Defined to be the path separator used on your local filesystem]) +AC_DEFINE_UNQUOTED(SVN_NULL_DEVICE_NAME, "/dev/null", + [Defined to be the null device for the system]) + dnl Find a python 2.X binary, test cases will not run with Python 1.X AC_PATH_PROG(PYTHON2, python2, none) if test "$PYTHON2" = "none"; then Index: subversion/libsvn_repos/hooks.c =================================================================== --- subversion/libsvn_repos/hooks.c (revision 6898) +++ subversion/libsvn_repos/hooks.c (working copy) @@ -50,7 +50,7 @@ svn_boolean_t check_exitcode, apr_pool_t *pool) { - apr_file_t *read_errhandle, *write_errhandle; + apr_file_t *read_errhandle, *write_errhandle, *null_handle; apr_status_t apr_err; svn_error_t *err; int exitcode; @@ -62,8 +62,15 @@ return svn_error_createf (apr_err, NULL, "can't create pipe for '%s' hook", cmd); + /* Redirect stdout to the null device */ + apr_err = apr_file_open (&null_handle, SVN_NULL_DEVICE_NAME, APR_WRITE, APR_OS_DEFAULT, + pool); + if (apr_err) + return svn_error_createf + (apr_err, NULL, "can't create null stdout for '%s' hook", cmd); + err = svn_io_run_cmd (".", cmd, args, &exitcode, &exitwhy, FALSE, - NULL, NULL, write_errhandle, pool); + NULL, null_handle, write_errhandle, pool); /* This seems to be done automatically if we pass the third parameter of apr_procattr_child_in/out_set(), but svn_io_run_cmd()'s interface does @@ -72,6 +79,10 @@ if (!err && apr_err) return svn_error_create (apr_err, NULL, "can't close write end of stderr pipe"); + apr_err = apr_file_close (null_handle); + if (!err && apr_err) + return svn_error_create + (apr_err, NULL, "can't close null stdout file"); /* Function failed. */ if (err) Index: svn_private_config.hw =================================================================== --- svn_private_config.hw (revision 6898) +++ svn_private_config.hw (working copy) @@ -39,6 +39,9 @@ /* Path separator for local filesystem */ #define SVN_PATH_LOCAL_SEPARATOR '\\' +/* Name of system's null device */ +#define SVN_NULL_DEVICE_NAME "nul" + /* Link local repos access library to client */ #define SVN_LIBSVN_CLIENT_LINKS_RA_LOCAL