我想在每次提交后将(最高)修订号更新为 subversion 存储库中的文件。
我想到了一个 svn version 关键字,但这不是只有在更改特定文件时才会更新吗?
即我有一个文件version.php,其中我有版本/修订号,但只在我的提交中更新anotherfile.php - 这不会更改version.php的版本/修订信息。
提交挂钩是我唯一的选择吗?如果是,有什么例子吗?
我想在每次提交后将(最高)修订号更新为 subversion 存储库中的文件。
我想到了一个 svn version 关键字,但这不是只有在更改特定文件时才会更新吗?
即我有一个文件version.php,其中我有版本/修订号,但只在我的提交中更新anotherfile.php - 这不会更改version.php的版本/修订信息。
提交挂钩是我唯一的选择吗?如果是,有什么例子吗?
听起来您想要某种 $GlobalRev$ 将全局修订号放入您的文件中。
您可能想要查看的适当工具是svnversion
您可以将其用作提交后挂钩或在您的构建/部署过程中创建或修改全局版本文件。
另请参阅“$GlobalRev$ 在哪里?” 在这个页面
我们不会在提交时执行此操作,而是将其作为部署过程的一部分。部署提取最新代码(或特定修订)以及 SVN 修订号,将版本放在相关位置(AssemblyInfo、PHP 版本文件等),然后将其部署到 test/UAT/live/whatever。
钩子脚本是这里唯一的选择。您有两种选择来完成该任务:按照 subversion handbook的建议,在提交前脚本中验证 version.php 是最新的,或者在提交后脚本中启动另一个提交更新您的版本文件. 正如手册中指出的那样,您不应修改挂钩中提交的文件。
Subversion 使用存储库范围的修订编号系统(请参阅此处的“全局修订编号”侧栏),因此您的文件已经被碰撞。