是否有可能创建一个svn提交挂钩,确认工作目录在提交之前已经过svn更新,构建和测试?我想至少确保在开发人员提交之前使用trunk中的最新代码编译和测试代码。当开发人员修改导致构建失败的不同源代码时,这将阻止集群中的集成问题。
如果存在任何已更新的文件(但在工作目录中没有必要修改),则可以选择阻止提交。
顺便说一下,如前一个问题所述,我的工作提交了二进制文件和源文件。一个给出的原因是如果提交时存在二进制文件冲突,您知道该二进制文件的源已发生更改,因此您需要运行svn-update并重新编译。它还使合并和更新成为一种痛苦。我意识到,如果开发人员在提交之前进行更新,则不太可能需要进行此检查。
答案 0 :(得分:1)
SVN本身可确保文件已更新。您无需确保人们正在检入更新文件。
对于编译/测试部分,您可以使用TortoiseSVN进行客户端挂钩,它将编译代码并作为预提交挂钩的一部分运行测试。需要注意的是,您无法确定每个开发人员都设置了挂钩。
您还可以查看与Rake Commit tasks
类似的内容以下是上述步骤:
- 提示提交消息
- 将新文件添加到subversion
- 从subversion删除丢失的文件
- svn update
- 运行默认的rake任务(应运行测试)
- 检查cruisecontrol.rb以查看构建是否正在通过
- 检查代码
醇>