2

我想在 VisualSVN 服务器上运行某种提交后挂钩脚本,以便将文件(或简单地编辑文件)添加到包含修订号(和其他修订信息)的存储库。我知道这可以使用客户端脚本来实现,但我想在服务器上进行。有什么想法吗?有可能吗?

4

2 回答 2

4

您可以通过 VisualSVN 服务器管理器管理服务器挂钩:

  1. 启动服务器管理器,
  2. 选择存储库,
  3. 行动 | 所有任务 | 管理钩子。

在对话框中,它告诉您修订号是第二个参数。有了修订号,您可以使用svn.exesvnlook.exe执行许多其他任务……有用吗?

于 2009-03-23T09:49:45.917 回答
1

从技术上讲,您可以使用提交后挂钩脚本来执行任务。但是,您应该了解,您不能修改原始事务本身(即不要尝试启动提交钩子。必须将带有修订详细信息的补充文件的提交作为单独的文件执行。

为了检索额外的修订数据,您可以在您的钩子中使用svnlook.exe

请参阅SVNBook

虽然钩子脚本几乎可以做任何事情,但钩子脚本作者应该在一个方面表现出克制:不要使用钩子脚本修改提交事务. 虽然使用钩子脚本自动更正提交的文件中存在的错误、缺点或违反策略可能很诱人,但这样做可能会导致问题。Subversion 保留存储库数据的某些位的客户端缓存,如果您以这种方式更改提交事务,这些缓存将变得难以察觉的陈旧。这种不一致会导致令人惊讶和意外的行为。而不是修改事务,您应该简单地在预提交挂钩中验证事务,如果它不满足所需的要求,则拒绝提交。作为奖励,您的用户将了解谨慎、合规的工作习惯的价值。

于 2012-10-12T15:04:10.017 回答