4

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

如果存在任何已更新的文件(但在工作目录中没有必要修改),另一种方法是阻止提交。

顺便说一句,正如前面问题中提到的,我的工作提交二进制文件和源代码。一个给定的原因是,如果提交时存在二进制文件冲突,您知道该二进制文件的源已更改,因此您需要运行 svn-update 并重新编译。它也使合并和更新变得痛苦。我意识到如果开发人员在提交之前进行更新,则不太可能需要此检查。

4

1 回答 1

1

SVN 本身确保文件已更新。您不必确保人们正在签入更新文件。

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

您还可以查看类似于Rake Commit 任务的内容

以下是上述操作的步骤:

  1. 提示提交消息
  2. 将新文件添加到颠覆
  3. 从颠覆中删除丢失的文件
  4. svn更新
  5. 运行默认的 rake 任务(应该运行测试)
  6. 检查 Cruisecontrol.rb 以查看构建是否通过
  7. 检查代码
于 2011-06-26T13:25:40.480 回答