在创建存储库时,有没有办法将自定义提交钩子设置为“默认”钩子?
答案1
除了通过“svnadmin create /path/to/repo”命令安装到新存储库中的九个标准钩子(start-commit、pre/post-commit、pre/post-revprop-change、pre/post-lock 和 pre/post-unlock)之外,我不知道还有什么方法可以将额外的钩子自动包含为所有新创建的存储库的“默认”钩子。
我想您可以构建一个包装器 shell 脚本来创建新的存储库,该脚本调用 svnadmin create 命令并使用为存储库路径设置的变量,然后将自定义提交钩子复制到 path/to/repo/hooks 文件夹中,并将其用于所有新存储库。
最后,因为你特别提到这个自定义钩子是一个提交钩子,我应该重复给出的警告使用 Subversion 进行版本控制在讨论时钩子脚本(重点是我的):
虽然钩子脚本几乎可以做任何事情,但钩子脚本作者应该在一个方面表现出克制:不要使用钩子脚本修改提交事务。虽然使用钩子脚本自动更正正在提交的文件中存在的错误、缺陷或策略违规可能很诱人,但这样做可能会导致问题。Subversion 会保留某些存储库数据的客户端缓存,如果您以这种方式更改提交事务,这些缓存将变得不可检测地陈旧。这种不一致可能会导致令人惊讶和意外的行为。您不应该修改事务,而应该在预提交钩子中验证事务,如果提交不符合所需要求,则拒绝提交。作为奖励,您的用户将了解谨慎、合规的工作习惯的价值