Nic*_*eld 5 svn tortoisesvn workflow pre-commit-hook
是否可以创建一个 svn 提交钩子来确认工作目录在提交之前已被 svn 更新、构建和测试?我想至少确保在开发人员提交之前,代码已经使用主干中的最新代码进行了编译和测试。当开发人员修改不同的源代码而导致构建失败时,这可以防止主干中出现集成问题。
另一种方法是,如果存在任何已更新的文件(但工作目录中没有必要修改),则阻止提交。
顺便说一句,正如上一个问题中提到的,我的工作提交了二进制文件和源代码。造成这种情况的一个给定原因是,如果提交时存在二进制文件冲突,您就知道该二进制文件的源已发生更改,因此您需要运行 svn-update 并重新编译。它还使合并和更新变得痛苦。我意识到,如果开发人员在提交之前进行更新,则不太可能需要此检查。
SVN 本身确保文件已更新。您不必确保人们正在签入更新文件。
对于编译/测试部分,您可以使用 TortoiseSVN 进行客户端挂钩,它将编译代码并作为预提交挂钩的一部分运行测试。需要注意的是,您无法真正确定每个开发人员都有钩子设置。
您还可以查看类似于Rake Commit 任务的内容
以下是上述操作的步骤:
- 提示输入提交消息
- 添加新文件到 subversion
- 从 subversion 中删除丢失的文件
- svn更新
- 运行默认的 rake 任务(应该运行测试)
- 检查 Cruisecontrol.rb 以查看构建是否通过
- 检查代码