Макет хранилища Subversion следует шаблону / trunk / branch / ..., поэтому мы имеем:
/trunk
/branches/stable-20100716
/branches/stable-20111231
/branches/stable-20110401
/branches/specialversion
/tags/some-tag
Затем у нас есть сервер сборки, который может собрать транк и текущую стабильную версию.
Вопрос: как сервер сборки находит текущую стабильную версию?
Мы используем CruiseControl (Java-версия) и Ant для процесса сборки в среде Windows. Тем не менее, сервер Subversion - это Linux.
В CVS мы бы использовали тег. Это первый раз, когда я пропускаю теги в Subversion. Я мог бы пометить ветку, но чтобы поддерживать ее в актуальном состоянии, я бы хотел удалить / добавить метку при каждом коммите в текущей стабильной версии. Может быть, хук коммита мог бы помочь, но есть ли более простое решение для автоматизации этого? (Может быть, без использования скриптового хоста Windows или около того?)
Добавление нового проекта на сервере сборки для каждого нового стабильного выпуска возможно, но это довольно сложно и подвержено ошибкам ...