SVN для продолжающих. Как делать релизы библиотек.
На разработку можно смотреть с двух сторон : со стороны конечного изделия и со стороны разработки составляющих программных модулей. Если в первом случае понятие релиз представляет собой прошивку для конечного изделия и тут вопросов обычно не возникает, то во втором случае все сложнее.
Программные модули обычно разрабатываются как небольшие проекты, при этом при разработке появляется некоторое количество файлов, которые для использования модуля как библиотечного не нужны. Действительно зачем разработчику, который использует модуль как есть, видеть в своем проекты файлы сборки модуля для тестирования или файлы/логи которые были для этого тестирования использованы.
Обычно релиз версии программного модуля делается для всего проекта целиком, а не отдельных его файлов. Но в этом случае файлы, которые нужны для использования модуля могут лежать в разных папках проекта и перемежаются с файлами которые не нужны. И разработчику для использования модуля нужно будет в ручную лазить по проекту и с помошью свойства svn::externals собирать модуль. Это не удобно и коряво. Как же быть?
Можно релизить только нужные файлы, но при этом во-первых вы потеряете синхронизацию с окружением этих файлов, а во-вторых при релизе файлов в репозитории на каждое копирование папки/файла будет обновляться номер ревизии репозитория.
Можно в проекте сделать папочку src_release куда ручками скопировать нужные файлы, но в этом случае вы потеряете SVN историю версий этих файлов.
В качестве оптимального решения проблемы предлагается следующее. В trunk проекта заводиться папочка src_release, куда с помошью команды svn_copy копируются файлы, нужные для использования модуля. И затем делается релиз в tags. Как только готов новый релиз, содержимое этой папки прибивается и делается svn_copy новых версий файлов.
Разработчикам, которые используют этот модуль, предоставляется ссылка svn::externals вида project/tags/last_release/src_release
- блог пользователя des00
- 9521 просмотр
Новые записи в блогах
- Устранение дребезга контактов на основе вертикальных счетчиков
- Диагностика Imprecise Bus Faults в микроконтроллерах Cortex-M3/M4/M4F
- Self-powered камера
- Фоновый модулятор: беспроводная связь из ничего (перевод)
- Texas Instruments Analog Applications Journal SLYT612 "Снижение искажений в аналоговых КМОП ключах" (перевод)
- USB MSD. Часть 6. Команды SCSI (перевод)
- USB MSD. Часть 3. USB класс накопителей данных (перевод)
- Texas Instruments Application Report SBAA042 "Кодовые схемы, используемые в аналогово-цифровых преобразователях" (перевод)
- 10 принципов правильного интерфейса
- Релиз SDK на русский микропроцессор КРОЛИК
Комментарии
ни**я не понял, о чем речь.
ни**я не понял, о чем речь. :(
Отправить комментарий