Subversion工作流:在提交之前强制更新,构建,测试

时间:2011-06-26 13:18:17

标签: svn tortoisesvn workflow pre-commit-hook

是否有可能创建一个svn提交挂钩,确认工作目录在提交之前已经过svn更新,构建和测试?我想至少确保在开发人员提交之前使用trunk中的最新代码编译和测试代码。当开发人员修改导致构建失败的不同源代码时,这将阻止集群中的集成问题。

如果存在任何已更新的文件(但在工作目录中没有必要修改),则可以选择阻止提交。

顺便说一下,如前一个问题所述,我的工作提交了二进制文件和源文件。一个给出的原因是如果提交时存在二进制文件冲突,您知道该二进制文件的源已发生更改,因此您需要运行svn-update并重新编译。它还使合并和更新成为一种痛苦。我意识到,如果开发人员在提交之前进行更新,则不太可能需要进行此检查。

1 个答案:

答案 0 :(得分:1)

SVN本身可确保文件已更新。您无需确保人们正在检入更新文件。

对于编译/测试部分,您可以使用TortoiseSVN进行客户端挂钩,它将编译代码并作为预提交挂钩的一部分运行测试。需要注意的是,您无法确定每个开发人员都设置了挂钩。

您还可以查看与Rake Commit tasks

类似的内容

以下是上述步骤:

  
      
  1. 提示提交消息
  2.   
  3. 将新文件添加到subversion
  4.   
  5. 从subversion删除丢失的文件
  6.   
  7. svn update
  8.   
  9. 运行默认的rake任务(应运行测试)
  10.   
  11. 检查cruisecontrol.rb以查看构建是否正在通过
  12.   
  13. 检查代码
  14.