Мы переходим от комбинации CC/CC.NET к TeamCity.
Ядром нашего продукта является Windows, но у нас есть агент Mac.
У нас установлен режим проверки VCS на "Автоматически на сервере". Значение источника будет проверено на сервере (Windows), а затем скопировано в агенты (включая агент Mac) по мере необходимости.
Наш продукт использует структуру BWToolkit для части пользовательского интерфейса. Это означает, что мы сохраняем структуру в нашем исходном элементе управления.
Проблема заключается в том, что исходная копия с сервера TeamCity закручивает символические ссылки в каталоге framework. Это приводит к тому, что наш продукт не может построить (error: BWToolkitFramework/BWToolkitFramework.h: No such file or directory
).
Вот как выглядит ls -l
внутри корневого каталога рамки на моей машине:
total 24
lrwxr-xr-x 1 myuser admin 35 Nov 22 10:45 BWToolkitFramework -> Versions/Current/BWToolkitFramework
lrwxr-xr-x 1 myuser admin 24 Nov 22 10:45 Headers -> Versions/Current/Headers
lrwxr-xr-x 1 myuser admin 26 Nov 22 10:45 Resources -> Versions/Current/Resources
drwxr-xr-x 5 myuser admin 170 Nov 22 10:45 Versions
И вот как это выглядит на машине сборки:
total 24
-rwxrwxr-- 1 root admin 40 Nov 19 16:21 BWToolkitFramework
-rwxrwxr-- 1 root admin 29 Nov 19 16:21 Headers
-rwxrwxr-- 1 root admin 31 Nov 19 16:21 Resources
drwxrwxr-- 4 root admin 136 Nov 19 16:21 Versions
Кроме того, вместо того, чтобы появляться как ссылки на машине сборки (маленькая стрелка накладывается на значок), они отображаются в виде файлов с исполняемым значком unix. Если вы откроете один из этих файлов, который должен быть ссылкой, вы получите что-то похожее на следующее (это из ссылки BWToolkitFramework):
link Versions/Current/BWToolkitFramework
Это, по-видимому, проблема с параметром checkout сервера в TeamCity, потому что CruiseControl работает на том же компьютере, что и прямая проверка SVN, и у меня не было проблем.
Есть ли способ исправить это, кроме изменения нашей конфигурации TeamCity, чтобы использовать проверку SVN на клиентской опции?