VisualSVN提交钩子将修订添加到repo中的文件
我们有一个受SVN控制的PHP项目(VisualSVN) 不知何故,我需要用当前版本号更新repo中的一个文件。 因此,当主站点更新/签出时,我们可以显示svn构建编号(这部分不是问题)VisualSVN提交钩子将修订添加到repo中的文件,svn,visualsvn,pre-commit-hook,post-commit-hook,Svn,Visualsvn,Pre Commit Hook,Post Commit Hook,我们有一个受SVN控制的PHP项目(VisualSVN) 不知何故,我需要用当前版本号更新repo中的一个文件。 因此,当主站点更新/签出时,我们可以显示svn构建编号(这部分不是问题) 使用提交前/提交后钩子是否可以做到这一点?提交前和提交后钩子的行为不同(请参阅关于钩子的文档,特别是关于的部分): 预提交:检查是否允许提交。因此,预提交钩子根本无法更改提交中的任何内容 提交后:通知成功提交 所以没有提到改变任何事情的机会。相反,在“实现挂钩”一节中有一段: 虽然钩子脚本几乎可以做任何事情
使用提交前/提交后钩子是否可以做到这一点?提交前和提交后钩子的行为不同(请参阅关于钩子的文档,特别是关于的部分):
- 预提交:检查是否允许提交。因此,预提交钩子根本无法更改提交中的任何内容
- 提交后:通知成功提交
所以我想说,这是不可能的,或者至少不建议这样做。提交前和提交后钩子的行为不同(请参阅关于钩子的文档,特别是关于的部分):
- 预提交:检查是否允许提交。因此,预提交钩子根本无法更改提交中的任何内容
- 提交后:通知成功提交
所以我想说,这是不可能的,至少不建议这样做。虽然姆利贝尔引用了正确的文本,但他得出了错误的结论。甚至两次:
- 它必须在提交后钩子中完成
- 在钩子里是不可能做到的
- 您将数据包括在存储库中(以便以后引用),这取决于整个存储库数据的更改,但是:此文件中数据的每次更改也会更改存储库数据的状态。经典恶性循环
- 您将所需的修订量增加两次:每次“数据修订”后,您必须执行“跟踪修订”
- 您希望VCS能够处理其他人的问题,更适用于构建部署工具,因为VCS拥有这些数据就足够了
svn info
,svnversion
,svn log-r HEAD
),将其存储在数据中违反了Occam的Raroz。当您“发布”数据以便在存储库外部使用时,您只能提取数据
哪些工具以及如何使用在很大程度上取决于以下方面:部署工作流、操作系统(您没有在普通的Win box上呆呆地盯着grep),只是一些提示:
- 来自TortoiseSVN的SubWCRev(仅限Win)可以通过用实际值替换特殊SubWCRev的关键字来检查工作副本和处理模板文件。SubWCRev有姐妹的Linux世界项目。使用这些工具假定将模板文件存储在某个位置(在repo内部或外部),并将处理结果保存在“准备使用”项目树中
- svnversion和svnlook可以在任何操作系统中使用(相应地用于WC路径和存储库路径)
- 您可以使用Subversion关键字来存储repo内部的修订号,,但不要忘记,文件内部使用的$revision$反映了此文件中上次更改的版本,并且在扩展后具有预定义的格式
- 它必须在提交后钩子中完成
- 在钩子里是不可能做到的
- 您将数据包括在存储库中(以便以后在存储库中引用),这取决于总体re
- 当姆利贝尔引用正确的文本时,他得出了错误的结论。甚至两次: