На моем рабочем месте Hudson используется для ежедневных сборок, при этом несколько ведомых устройств сборки (один Linux, один Windows, один Mac) проверяют нашу полную кодовую базу из svn и создают наше приложение в полночь каждый день. Все это работает довольно хорошо.
Однако иногда возникает проблема ... иногда разработчик работает допоздна и проверяет изменения в svn сразу после полуночи. Когда это происходит, возможно, что некоторые из подчиненных устройств ежедневной сборки будут выполнять свою «svn checkout» до обработки фиксации svn, в то время как другие подчиненные устройства сборки будут делать это после обработки фиксации. Когда это происходит, мы получаем разные версии, созданные на разных платформах ... например. сборка Mac может быть сборкой SVN версии 5555, тогда как сборка Windows в конечном итоге будет сборкой SVN версии 5556. Это плохо, поскольку мы хотим, чтобы все ежедневные сборки для данного дня основывались на одной и той же кодовой базе.
Я полагаю, что один из способов избежать этого - запретить разработчикам фиксировать svn между 23:30 и 12:30, но я бы предпочел более элегантное решение, которое не зависит от поведения разработчиков. Есть один? В частности, если есть способ сказать hudson, чтобы он проверял версию кода, которая была текущей в полночь текущего дня (например, "svn co -r {" the-current-date "}") вместо проверки ГОЛОВА, я думаю, это поможет.
Есть ли простой / простой способ справиться с этой проблемой?