SVN для продолжающих. Как делать релизы библиотек.

На разработку можно смотреть с двух сторон : со стороны конечного изделия и со стороны разработки составляющих программных модулей. Если в первом случае понятие релиз представляет собой прошивку для конечного изделия и тут вопросов обычно не возникает, то во втором случае все сложнее.

Программные модули обычно разрабатываются как небольшие проекты, при этом при разработке появляется некоторое количество файлов, которые для использования модуля как библиотечного не нужны. Действительно зачем разработчику, который использует модуль как есть, видеть в своем проекты файлы сборки модуля для тестирования или файлы/логи которые были для этого тестирования использованы.

Обычно релиз версии программного модуля делается для всего проекта целиком, а не отдельных его файлов. Но в этом случае файлы, которые нужны для использования модуля могут лежать в разных папках проекта и перемежаются с файлами которые не нужны. И разработчику для использования модуля нужно будет в ручную лазить по проекту и с помошью свойства svn::externals собирать модуль. Это не удобно и коряво. Как же быть?

Можно релизить только нужные файлы, но при этом во-первых вы потеряете синхронизацию с окружением этих файлов, а во-вторых при релизе файлов в репозитории на каждое копирование папки/файла будет обновляться номер ревизии репозитория.

Можно в проекте сделать папочку src_release куда ручками скопировать нужные файлы, но в этом случае вы потеряете SVN историю версий этих файлов. 

В качестве оптимального решения проблемы предлагается следующее. В trunk проекта заводиться папочка src_release, куда с помошью команды svn_copy копируются файлы, нужные для использования модуля. И затем делается релиз в tags. Как только готов новый релиз, содержимое этой папки прибивается и делается svn_copy новых версий файлов.

Разработчикам, которые используют этот модуль, предоставляется ссылка svn::externals вида project/tags/last_release/src_release

Комментарии

Настройки просмотра комментариев

Выберите нужный метод показа комментариев и нажмите "Сохранить установки".

ни**я не понял, о чем речь.

ни**я не понял, о чем речь. :( 

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Syntax highlight code surrounded by the {syntaxhighlighter SPEC}...{/syntaxhighlighter} tags, where SPEC is a Syntaxhighlighter options string or "class="OPTIONS" title="the title".
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <p> <span> <s> <strike> <div> <h1> <h2> <h3> <h4> <h5> <h6> <img> <map> <area> <hr> <br> <br /> <ul> <ol> <li> <dl> <dt> <dd> <table> <caption> <tbody> <tr> <td> <em> <b> <u> <i> <strong> <del> <ins> <sub> <sup> <quote> <blockquote> <pre> <address> <code> <cite> <embed> <object> <param> <strike>
  • Использовать как разделитель страниц.

Подробнее о форматировании