Должны ли библиотека и медиафайлы храниться в хранилище? - PullRequest
0 голосов
/ 13 марта 2012

Я использую SVN, но этот вопрос относится к любой системе контроля версий.

При разработке приложения, которое использует медиа-файлы (изображения, видео, XML-файлы и т. Д.), Которые постоянно меняются и почти в каждом приложенииверсия (или версия) использует уникальный набор этих медиа-файлов, которые не совместимы с предыдущими (или будущими) версиями этих файлов.При этом приложение использует определенные версии сторонних библиотек, которые несовместимы с их предыдущими или будущими версиями.Является ли обычной практикой хранение всех этих двоичных файлов в хранилище, например SVN?

Я думаю, что да.

Плюсы:

  • Если проект большой и в нем были нарушены некоторые функции или появилась ошибка, вы всегда можете выполнить «Обновление до ревизии» и найти место, гдеошибка появилась.И исправьте это.
  • Сделать оформление заказа и создать приложение легко, потому что у вас есть все необходимое в рабочей копии для создания приложения

Минусы:

  • Серверу SVN потребуется много места на жестком диске для хранения всех версий.Кто-то говорит, что он становится вялым
  • Обновления SVN происходят медленно

Есть ли какие-либо другие преимущества хранения только файлов исходного кода в хранилище?

1 Ответ

0 голосов
/ 14 марта 2012

Это может не работать с изображениями, видео и файлами XML, но мы храним сторонние библиотеки в отдельном SVN-репозитории, где все в стволе. Отлично работает.

Разработчики могут проверить его на своих локальных компьютерах или получить нужные им файлы во время компиляции по сети. Мы изменили наши файлы проекта Visual Studio так, чтобы они указывали на локальную переменную среды, которая связывает двоичные файлы в SDK с тем местом, где они находятся.

Предполагая, что файлы находятся в локальной рабочей копии с именем OURSDK, переменная среды будет иметь вид:

>set OURSDK
OURSDK=C:\Source\OURSDK

Затем мы изменили наши файлы проектов C # и C ++, чтобы использовать эти макросы вместо относительных путей:

AdditionalIncludeDirectories=""$(OURSDK)\log4cxx\src\main\include"$(OURSDK)\xerces-c\include";"$(OURSDK)\TSE-RegExp\Include""

Таким образом, мы поддерживаем три версии нашего продукта, и связывание со сторонними библиотеками почти никогда не является проблемой. Единственный минус в том, что репо фактически «только для записи», куда входят и остаются библиотеки, поэтому со временем оно постепенно увеличивается. Оно того стоит. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...