выпустить из SVN с помощью экспорта, а затем? как обновить?

Используя SVN, я думал о выпуске первой сборки (версия 1.0) на производственный сервер с помощью команды экспорта SVN.

Какой следующий шаг для обновления? Например, если я хочу выпустить следующую сборку версии 1.1, как это сделать? Не удаляя все файлы, есть ли способ просто обновиться с тега?


person CIF    schedule 01.03.2011    source источник


Ответы (2)


Общий этап выпуска:

  1. Создайте тег из основной/проверенной ветки. Это выпущенный код. И не может быть изменен без ветвления. Это версия 1.0. Вы создаете и развертываете этот код на рабочем сервере.

  2. Продолжайте писать код для версии 1.1 в основной ветке (транке). В конце версии 1.1 вы создадите еще один тег, который будет выпускной версией 1.1. И так далее.

В идеале вы сохраняете один тег для каждого выпуска. Если есть точечные исправления, которые необходимо перейти к ранее выпущенной версии, вы (1)создать ветку из этого тега (скажем, 1.0), (2) исправить проблему в ветке, (3) создать еще один тег из этой ветки как выпуск версии 1.0.1

Обратите внимание, что никакие файлы не удаляются в течение всего процесса. Вы просто создаете новые ветки, которые являются дешевыми копиями вашей кодовой базы.


Обновить

Но тогда как я могу перейти на тег 1.1 в производстве? Будет ли экспорт SVN перезаписывать существующие файлы и удалять файлы, удаленные в теге 1.1? Это моя забота.

Две вещи

  1. Экспорт не удаляет какие-либо файлы из любого места. Он загружает чистую копию (без .svn и других специфических материалов SVN) URL-адреса, который вы предоставили ему в качестве аргумента. См. здесь экспорт svn

  2. При создании ветки или тега следует скопировать. И НЕ экспорт с последующим импортом. Наиболее распространенный процесс выпуска выглядит следующим образом: (извините за пафосный арт)

Состояния репозитория SVN со временем

                                                        /---> Tag 1.0.1(release to prod)
                    /--- Branch 1.0.1 for spot-fixes----|
                   /                                    |
             /---Tag 1.0 (released to prod)             v (merge fixes)    /---Tag 1.1 (released to prod)
 Trunk ----->'------Development for v1.1----------------'----------------->'----Development for v1.2-->  

Вы видите, что ничего никогда не удаляется, и у вас есть теги для каждого выпуска.

person Nishant    schedule 01.03.2011
comment
Но тогда как я могу перейти на тег 1.1 в производстве? Будет ли экспорт SVN перезаписывать существующие файлы и удалять файлы, удаленные в теге 1.1? Это моя забота. - person CIF; 03.03.2011

Похоже, вы хотите сделать непрерывную интеграцию.

Вы можете подключить различные серверы сборки для интеграции с вашим сервером SVN, чтобы вы могли итеративно выпускать свои сборки.

Более автоматизировано, чем делать это вручную с экспортом.

Посмотри на

http://www.thoughtworks-studios.com/go-agile-release-management/

or

http://www.jetbrains.com/teamcity/

Там же куча других...

person timothyclifford    schedule 01.03.2011