Subversion: ветвь на среду? - PullRequest
       19

Subversion: ветвь на среду?

5 голосов
/ 08 сентября 2010

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

trunk
---doc
---lib
---src
------console
---------console.vbproj
------domain
---------domain.vbproj
------...
------web
---------web.vbproj
---.sln

Вся наша повседневная разработка происходит в транке - это то место, где все разработчики извлекают из / подтверждают.

Я ищу способ простого и удобного развертывания между средами (тестирование и производство).

Моя мысль - создать две ветви: тестовую и производственную - из магистрального решения и все такое.Я оправдываю это для себя по следующим причинам:

  1. У меня есть полный контроль над тем, какие модификации текут в какие среды, путем слияния только из магистрали в тестовую ветвь и из тестовой ветки в производственную ветку
  2. Я легко могу увидеть, какой код выполняется в каждой среде, просто просматривая журнал соответствующей ветви в Subversion

Кто-нибудь имел опыт работы с подобным решением?Есть ли какие-то потенциальные ловушки или упущения, которые я упускаю?

Ответы [ 2 ]

7 голосов
/ 08 сентября 2010

Кто-нибудь имел опыт работы с подобным решением?

Да: -)

Есть ли у меня какие-либо потенциальные ловушки или упущенияотсутствует?

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

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

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

Я надеюсь, что эти аспекты помогут вам в вашем решении.Ссылка также показывает много других анти-паттернов.Прочтите их все, может быть, вы узнаете некоторые извлеченные уроки и получите подсказки, чтобы лучше их решить.

2 голосов
/ 08 сентября 2010

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

В сочетании с инструментом отслеживания ошибок, таким как jira от atlassian (меня не спонсируют), ваша настройка становится еще более прозрачной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...