我怎么能有一个只在提交TRUNK时调用的post-commit钩子?

Cam*_*oft 5 linux svn version-control tortoisesvn

我有一个包含以下目录的存储库:

  • 分支机构
  • 标签
  • 树干

trunk目录包含主要的开发线.我为存储库创建了一个post-commit钩子脚本,用于在用户提交回存储库时更新(trunk)工作副本.

它看起来像这样:

/usr/bin/svn update /path/to/a/working/copy
Run Code Online (Sandbox Code Playgroud)

我刚刚创建了一个代码分支,因为我即将开始一些重大更改但是注意到当我将更改提交到分支时,它会调用post-commit钩子并更新工作副本(trunk的副本).

有没有办法可以修改我的post-commit钩子脚本或我可以创建的设置,只有在提交到trunk目录而不是任何其他目录时才会更新工作副本?

Val*_*her 4

正如您在本文档中看到的,参数被传递到提交后脚本。

存储库将两个参数传递给该程序:存储库的路径和创建的新修订号。

提交后挂钩可以是任何类型的任何程序:bash 脚本、C 程序、python 脚本...发生的情况是 shell 使用两个参数启动该程序。

您可以在此处找到有趣的脚本列表。一个好的开始是这个 python 脚本,它使用 python svn 库。

请注意,提供的路径与您正在签入的文件的路径不同(请参阅Paul 的回答)。但是,将此信息与 revnum 一起使用应该可以帮助您获取更改列表,从中您可以确定是否已在主干上完成操作。