освободить из SVN с помощью «экспорта», а затем? как обновить? - PullRequest
3 голосов
/ 01 марта 2011

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

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

Ответы [ 2 ]

6 голосов
/ 01 марта 2011

Общий шаг выпуска:

  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 export

  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-->  

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

0 голосов
/ 01 марта 2011

Звучит так, как будто вы хотите выполнять некоторую непрерывную интеграцию.

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

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

Взгляните на

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

или

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

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

...