Jer*_*ner 5 svn hudson build race-condition
我的工作场所使用Hudson进行日常构建,有几个构建从属服务器(一个Linux,一个Windows,一个Mac)从svn检查我们的完整代码库,并在每天午夜构建我们的应用程序.一切都运作良好.
偶尔会出现一些问题......有时开发人员会工作到很晚,并会在午夜之后检查svn的更改.发生这种情况时,某些每日构建从服务器可能会在处理svn提交之前执行'svn checkout',而其他构建从服务器将在处理提交后执行此操作.当发生这种情况时,我们最终会在不同平台上构建不同的版本...例如,Mac版本可能是SVN版本5555的版本,而Windows版本最终是SVN版本5556的版本.这很糟糕,因为我们想要所有特定日期的每日构建基于相同的代码库.
我想避免这种情况的一种方法是禁止开发人员在晚上11:30到12:30之间提交svn,但我更喜欢一种更优雅的解决方案,它不依赖于开发人员的行为.有吗?特别是,如果有办法告诉hudson检查当前午夜当前代码的修订版本(例如"svn co -r {"the-current-date"}")而不是签出HEAD,我认为这可能会成功.
是否有一种常见/简单的方法来处理这个问题?