Где я должен указать VCS корень TeamCity? - PullRequest
20 голосов
/ 13 октября 2009

Я настраиваю TeamCity и мне интересно, что следует использовать в качестве корня VCS.

Мой репозиторий SVN находится на http://obfuscatedserver/svn/main/MyProject1/

Должен ли я установить корень VCS на http://obfuscatedserver/svn/main/MyProject1/ или использовать папку транка на http://obfuscatedserver/svn/main/MyProject1/trunk/?

В данный момент я не использую папку ствола, и мне пришлось установить для параметра "Путь к файлу сборки" программы запуска сборки "trunk / MyProject1.proj" (с помощью msbuild).

Какое место подходит?

Ответы [ 3 ]

24 голосов
/ 20 октября 2009

Я бы рекомендовал использовать http://obfuscatedserver/svn/main/ в качестве корня VCS, а затем ограничить, какие папки извлекаются с помощью правил извлечения.

Добавьте следующие правила оформления заказа (раздел 2 конфигурации сборки):

  +:/MyProject1/trunk

Возможно, вам также понадобится обновить местоположение вашего файла msbuild до

  MyProject1/trunk/MyProject1.proj

и установите рабочий каталог на

  MyProject1/trunk

Это кажется большой работой, но в следующий раз, когда вы захотите добавить новую сборку, вам не нужно создавать новый VCSroot.

Однако реальная выгода приходит, когда TeamCity опрашивает ваше репозиторий SVN. Опрос вашего репо один раз обнаружит все изменения для всех ваших сборок. Это особенно важно, если ваш репозиторий размещен где-то вроде sourceforge или googlecode. Вы, конечно, не хотите опрашивать их серверы для каждой настроенной вами сборки.

Кроме того, если ваше хранилище размещено третьей стороной, вы можете установить интервал проверки vcsRoot на один раз в час или аналогичный. Вы всегда можете попросить teamcity проверить наличие ожидающих изменений в меню действий на любой из страниц обзора сборки, если вас не смущает ожидание истечения часа.

2 голосов
/ 30 сентября 2011

До настоящего времени я использовал ../trunk в качестве корня. Это хорошо, потому что в моем случае все проекты расположены ниже ствола, и поэтому я могу легко выполнить полную проверку.

Но функция маркировки не работает, потому что вам нужно использовать правило типа «trunk => tags» и корень, который является родителем этих каталогов. Поскольку я хотел бы пометить каждую сборку релиза, я теперь думаю о переходе на макет, похожий на тот, который предложил CrazyCoder.

2 голосов
/ 14 октября 2009

Вы должны использовать ... / trunk /, так как это ускорит оформление заказа, в противном случае TeamCity также получит все ветви, которые вам, вероятно, не нужны для сборки.

...