shell 脚本提交后钩子只执行 date > /tmp/post-commit.log 不会将任何内容写入日志文件

shell 脚本提交后钩子只执行 date > /tmp/post-commit.log 不会将任何内容写入日志文件

我在 ubuntu 10 上安装了带有 apache 2 的 svn 服务器

我已经创建了一个只有两行代码的 post-commit.sh

存储库/hooks/post-commit.sh:

#!/bin/sh
date > /tmp/post-commit.log

该文件中没有写入任何内容,有人可以帮忙吗?

答案1

这里

姓名

提交后 — 提交成功通知。

描述

提交后挂钩在事务提交并创建新修订后运行。大多数人使用此挂钩发送有关提交的描述性电子邮件或通知其他工具(例如问题跟踪器)已发生提交。某些配置还使用此挂钩触发备份过程。

提交后挂钩程序的输出和返回的退出值将被忽略。


你想要的是预提交钩子(一旦你想到这些名字就很明显了):

姓名

预提交——提交完成之前发出通知。

描述

预提交钩子在提交事务升级到新修订版本之前运行。通常,此钩子用于防止由于内容或位置而不允许的提交(例如,您的站点可能要求对某个分支的所有提交都包含来自错误跟踪器的票号,或者传入的日志消息非空)。

如果预提交挂钩程序返回非零退出值,则中止提交,删除提交事务,并且打印到 stderr 的任何内容都将被编组回客户端。


另外,请确保脚本文件可执行,并使用准确的名称pre-commitpost-commit,即不带文件扩展名!

答案2

尝试将脚本重命名为repository/hooks/post-commit。文件名中不应有扩展名。阅读repository/hooks/post-commit.tmpl文件以获取更多信息(特别是第一段,其中说明:

提交后钩子在提交后调用。Subversion 通过调用名为“提交后

相关内容