Я поддерживаю систему сборки в моей компании, которая в настоящее время использует CVS. Эта система сборки используется в нескольких проектах и нескольких хранилищах CVS.
Всякий раз, когда у нас есть этап выпуска, мы создаем тег. В CVS это легко:
$ cvs tag TAG_NAME
Эта команда работает независимо от модуля или хранилища CVS, если она выполняется в рабочем каталоге CVS.
Для того, чтобы сделать то же самое в Subversion, похоже, мне сначала придется проанализировать вывод svn info
, чтобы получить корень хранилища. Затем я могу создать тег с:
svn cp . $REPO_ROOT/tags/TAG_NAME -m"Created tag TAG_NAME"
Это, конечно, предполагает, что репозиторий svn имеет рекомендованную структуру каталогов "trunk, tags, branch". Поэтому, чтобы быть в безопасности, я, вероятно, сначала должен это проверить.
Это кажется большой работой, только чтобы сопоставить номер ревизии с символическим именем. Есть ли лучший способ?