我有一个小型 NAS 服务器(QNAP TS-210),板载有限的 Linux。我在本地 SVN 守护程序中运行挂钩时遇到问题。如果我直接从命令行运行它们,一切正常。如果 SVN 尝试将它们作为钩子运行,或者将它们添加到 crontab 中,然后 CRON 尝试运行它们,两者都会失败。
有人告诉我,这是由于运行这些脚本/挂钩的用户之间存在差异。我以“admin”身份通过 SSH 登录到我的 nas,并假设 CRON 和 SVN 都在“root”下运行。似乎 root 对目标文件夹没有足够的权限(我使用 SVN post-commit-hook 将存储库导出到某个本地文件夹)或运行 SVN / CRON(SVN 在 pre-revprop-change 挂钩上也失败,即使它包含 only exit 0
,所以我假设 SVN 根本不能运行钩子)。或者也许这是不同的东西?
编辑:如何强制 SVN 在“admin”下运行,或者如何为“root”设置足够的权限,以便它可以像我一样(“admin”)运行 SVN 挂钩?
编辑:我的钩子脚本就是/share/Sys/svn/tools_and_examples/hooks
这样,调用
ls -lh /share/Sys/svn/tools_and_examples/hooks
结果是:
-rwxrwx--x 1 trejder everyone 147 Jun 24 14:33 post-commit.cron*
-rw-rw---- 1 admin administ 1.9k Jun 25 12:20 post-commit.tmpl
-rw-rw---- 1 admin administ 1.6k Jun 25 12:20 post-lock.tmpl
-rw-rw---- 1 admin administ 2.2k Jun 25 12:20 post-revprop-change.tmpl
-rw-rw---- 1 admin administ 1.5k Jun 25 12:20 post-unlock.tmpl
-rw-rw---- 1 admin administ 3.3k Jun 25 12:20 pre-commit.tmpl
-rw-rw---- 1 admin administ 2.4k Jun 25 12:20 pre-lock.tmpl
-rw-rw---- 1 admin administ 6 Jun 25 12:29 pre-revprop-change
-rw-rw---- 1 admin administ 2.1k Jun 25 12:20 pre-unlock.tmpl
-rw-rw---- 1 admin administ 2.7k Jun 25 12:20 start-commit.tmpl
并ls -lh /share/Sys/svn/tools_and_examples/hooks/post-commit.cron
给了我这个:
-rwxrwx--x 1 trejder everyone 147 Jun 24 14:33 /share/Sys/svn/tools_and_examples/hooks/post-commit.cron*
希望,这会有所帮助。