Я установил наш SVN-репозиторий, как предлагает книга Subversion, и это также то, как это сделали мои предыдущие компании. Это выглядит примерно так:Типичная структура репо SVN кажется неоптимальной для непрерывной интеграции.
/trunk
/branches
/tags
/extlibs
/docs
, где первые три довольно очевидны, и extlibs для 3-сторонних сборок, которые мы бы не обычно перекомпилировать себя.
Все это отлично подходит для повседневной разработки.
Теперь я установил TeamCity и собрал сборки, модульные тесты, покрытие кода и анализ кода. Все отлично, за исключением того факта, что эта структура кода приводит к загрузке большого количества кода.
Итак, вот уловка 22, на мой взгляд: глупо загружать все вышеупомянутые папки из репо SVN, когда мне нужно только/trunk и/extlibs. Но я могу указать только одну папку репо для загрузки в настройках VCS TeamCity. Таким образом, другая возможность заключается в том, чтобы поместить папку/extlibs в/trunk, но для того, чтобы скомпилировать ветви,/extlibs также должны были бы входить во все эти (так как я обычно ветви ствола, а не отдельные подпапки ... и это, казалось бы, бесконечно больше зло, так как/extlibs может быть на самом деле больше, чем/багажник и/филиалы, со всеми из бинарных файлов, хранящихся там ...
ли вы, ребята, есть какие-либо предложения для меня? Спасибо!
Мне нравится идея держать extlibs там, где она есть. На моей предыдущей работе мы не сохранили их хорошо защищенными от изменений, но было просто известно, что вещи там не должны часто меняться, и когда они есть, вся команда должна быть уведомлена. Спасибо за информацию. В последнее время я не смог сосредоточиться на этом вопросе, но я скоро рассмотрю ваши предложения! – Dave
Я не хотел создавать впечатление, что вам нужно переместить библиотеки, но вместо этого используйте внешние команды svn: для импорта необходимых вам зависимостей.Я надеюсь, что информация полезна. – codeprogression
Кроме того, вы можете использовать правила выписки, чтобы вытаскивать только нужные вам папки эклипбов. (Похоже, вы связываетесь с этой структурой папок в разработке.) Вы можете добавить их по мере необходимости, но может быть проблемой обслуживания, когда вы начинаете нуждаться в дополнительных библиотеках. – codeprogression