Контроль версий и ветвление сайта - PullRequest
4 голосов
/ 07 августа 2009

У нас под контролем версий (SVN) веб-приложение. В багажнике всегда находится последняя хорошая версия сайта.

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

Допустим, наши пользователи biz приходят и хотят новую порку ... Итак, мы создаем новую ветку для нашего разработчика. Как я должен публиковать ветку, не затрагивая основной сайт разработчика. Должны ли мы публиковать каждую ветку сайта на уникальных портах?

http://DevServer:80 = Магистраль
http://DevServer:8081 = ветвь 001
http://DevServer:8082 = филиал 002
http://DevServer:8083 = филиал 003
http://DevServer:8084 = ветвь 004

Очевидно, что нам нужно будет также развернуть файлы проекта в каталогах unqiue и правильно сопоставить IIS ....

Это распространенный метод? Каковы лучшие практики?

Ответы [ 3 ]

6 голосов
/ 07 августа 2009

В идеале у вас должна быть отдельная машина для каждой среды (production, uat, test, dev & ci). Если у вас нет ресурсов для реальных физических машин, то для непроизводственных сред используется виртуализация.

Это также означает, что вы можете правильно протестировать эффекты различных зависимостей и библиотек, которые вы используете.

РЕДАКТИРОВАТЬ: О ветвлении ...

То, что мы делаем здесь, и в нескольких местах, где я работал раньше, - это ветка интеграции вне магистрали. Разработчики, разрабатывающие новые функции, разветвляются за веткой интеграции и реинтегрируются в ветку интеграции. CI сделан и на интеграции и на транке. Неформальное тестирование может быть выполнено при интеграции, но более формальное тестирование (выпуски UAT) происходит из магистрали. Периодически мы интегрируем вниз из ветви интеграции в транк. Это имеет дополнительное преимущество защиты ствола.

т.е.

trunk
  integration
    feature1
    feature2
1 голос
/ 07 августа 2009

Развертывание разных веток на разных портах - это одно решение, в среде Java-сервлетов решение для сопоставления ветвей с разными путями было бы проще (я не знаю, верно ли это и для IIS):

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

1 голос
/ 07 августа 2009

Книга RedBean (бесплатно) дает отличное описание ветвления. Хотя книга ориентирована на SVN, описание стратегии ветвления применимо ко всем.

Другим хорошим бесплатным ресурсом является документация по ветвлению Microsoft Team Foundation Server . Это копров:

  • Параллельное развитие
  • Ветвление определено
  • Создание изоляции в Team Foundation Server
  • Общее руководство по разветвленной структуре
  • Стратегии ветвления
  • Широкие области разветвленной изоляции
  • Создание стратегии ветвления
  • Определение кода вашего промо-модели
  • Экипажи: как это делает Microsoft
  • Сценарий сквозного внедрения
...