Как указать порядок извлечения корней vcs в teamcity v8.1.5
Я использую teamcity v8.1.5. Я где-то читал в Интернете. Я думал, что корни vcs проверяются в том порядке, в котором они перечислены в настройках контроля версий, но это не так.
Например, в настройках контроля версий корни vcs перечислены как:
б
с
когда я запускаю конфигурацию сборки, журнал сборки отображает извлечения как:
с
б
затем я отсоединяю, снова присоединяю его обратно, и тогда список становится
б
с
но выполнение другой чистой проверки по-прежнему приводит к исходному порядку
с
б
Есть ли какая-то внутренняя логика, которая определяет порядок извлечения корней VCS и как настроить этот порядок?
Спасибо
Зачем мне это нужно
Я работаю в среде, где есть репозитории с несколькими проектами, так что для одного проекта требуется источник другого (извлеченный в один и тот же каталог). Сложность состоит в том, что определенные файлы с одинаковым путем / именем существуют в обоих репозиториях, и в некоторых случаях проект будет использовать свой собственный, а в другом ему нужны другие репозитории (таким образом, определяя конкретный порядок замены извлеченного файла или нет на втором кассе репо). Перекрывающийся файл - это не фактический исходный код, а файл build / config, поэтому не имеет смысла переименовывать их по-другому.
Я очень хорошо знаю, что это не очень хорошая практика, но это то, что я унаследовал, и приоритет состоит в том, чтобы заставить их строить перед рефакторингом исходной структуры.
Временное решение
Сейчас я работаю над этой проблемой, уточняя правила проверки последней проверки vcs, чтобы игнорировать определенные файлы, чтобы они не заменяли файлы, когда я этого не хочу. Было бы все еще полезно просто контролировать это по порядку проверок vcs.
Спасибо
1 ответ
Я бы использовал правила оформления заказа, поэтому каждый репо сам содержался в своей собственной папке без каких-либо шансов перекрывать содержимое с другими репо.
Для репо A VCS Root:
+:. => A
Для репо B VCS Root:
+:. => B
Для репо C VCS Root:
+:. => C
Который становится:
%system.teamcity.build.checkoutDir%/A
%system.teamcity.build.checkoutDir%/B
%system.teamcity.build.checkoutDir%/C