On 06.02.2015 17:14, Philip Martin wrote:
> Sergey Raevskiy <sergey.raevs...@visualsvn.com> writes:
>
>> +  /* Set an empty pre-commit hook. */
>> +#ifdef WIN32
>> +  SVN_ERR(svn_io_file_create(
>> +      "test-repo-deprecated-access-context-api/hooks/pre-commit.bat",
>> +      "exit 0" APR_EOL_STR, pool));
>> +#else
>> +  SVN_ERR(svn_io_file_create(
>> +      "test-repo-deprecated-access-context-api/hooks/pre-commit",
>> +      "#!/bin/sh" APR_EOL_STR "exit 0" APR_EOL_STR, pool));
>> +  SVN_ERR(svn_io_set_file_executable(svn_repos_pre_commit_hook(repos, pool),
>> +                                     TRUE, FALSE, pool));
>> +#endif
> I'd probably use svn_repos_pre_commit_hook in all three places (use
> apr_pstrcat to add the .bat) rather than hard-coding the hook name.
>
> I would expect this to work in practice as I've never seen a Unix
> machine without /bin/sh, but I suppose strictly speaking we cannot rely
> on /bin/sh.  Is it portable enough?  I suppose we could have a configure
> variable based on CONFIG_SHELL.  Or have a configure variable based on
> PYTHON and write the hook in python.  Or perhaps compile some C to
> produce an executable and use that by copying it into the repository.

That last would probably the safest thing to do; after all, if we can
produce binaries, we can write portable hook scripts, too.

-- Brane

Reply via email to