Нужна помощь с SVN: Магистральные / Филиалы / Структура тегов - PullRequest
2 голосов
/ 02 августа 2010

В настоящее время мы используем SVN без структуры Trunk / Branches / Tags. До сих пор нам это удавалось, но теперь мы достигли уровня, когда нам нужна какая-то система, которая может обрабатывать 3 разных уровня версий для 3 разных серверов.

В настоящее время это то, что мы делаем:

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

Но в вышеописанном процессе у нас очень мало места для работы над новой функцией и одновременного устранения незначительных проблем. Итак, чтобы исправить это, я подумал, мы можем использовать структуру Trunk / Branches / Tags, в которой последняя версия разработки может храниться в Trunk и развертываться на нашем сервере разработки.

Теги могут иметь версии (например, 1.0.1,1.0.2 и т. Д.) Для промежуточного сервера, а филиалы будут иметь последние версии (например, 1.0,1.1 и т. Д.) Для живого сервера.

Теперь проблема в том, что в настоящее время вся разработка выполняется на локальном сервере, и я не уверен, как заставить эту структуру работать на одном сервере, где все разработчики будут работать в одной корневой папке.

Или мы должны создать 3 отдельные корневые папки (Development, Staging & Live)?

Любые предложения приветствуются.

Ответы [ 2 ]

1 голос
/ 02 августа 2010

Наш процесс содержит три папки на сервере развертывания (хотя мы иногда разделяем эти три папки на три разных сервера): / dev, / test и / (для prod).

В репозитории мы работаем над новыми функциями в багажнике. Изменения в стволе автоматически помещаются в папку / dev, чтобы мы могли в реальном времени увидеть, как выглядит сайт.

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

Как только мы удовлетворены тестом, мы помечаем его общедоступным номером версии (например, 1.2). Затем мы развернем этот тег в / (производственная папка). Затем мы объединяем изменения из тестовой ветви в ствол, чтобы наши исправления ошибок были включены. Затем мы начинаем следующий цикл.

0 голосов
/ 02 августа 2010

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

И как вы описали свою систему нумерации версий, они оба являются тегами.Посмотрите на раздел ветвления и слияния документации SVN для объяснения.

...