Поскольку мы разрабатываем развернутую систему, мы пытаемся лучше использовать ветвление — до недавнего времени почти все просто проверялось в магистрали, развертывалось для тестирования/постановки, а затем в рабочей среде. Это означает, что мы должны быть очень осторожными в течение периода «Тестирования», и мы все еще будем время от времени получать нежелательные изменения, отправленные на сервер с небольшим тестированием.
Я считаю, что лучше всего было бы, если бы «незначительные» исправления отправлялись прямо в основную ветку, основные функции становились ветвями функций, которые после завершения повторно интегрировались в основную ветку, а "Производственная" ветвь, которая всегда соответствует состоянию сервера, с которым мы можем объединиться непосредственно перед развертыванием.
Основное преимущество, предлагаемое здесь, заключается в том, что вы можете выбирать, какие изменения развертывать в рабочей среде — если хотите, вы можете взять одну регистрацию или ветку и отправить ее в рабочую среду, не задействуя все остальные ветки.
С другой стороны, кажется, что лучше всего часто проводить интеграцию веток с магистралью - подтягивать изменения, чтобы они не накапливались и не вызывали неприятного слияния.
Таким образом, эти два паттерна могут привести к тому, что вы захотите объединить ветку с производственной, чтобы внести важную функцию, но эта ветка уже «вытащила» изменения из ствола, которые вы не хотите отправлять.
Может ли SVN справиться с этим? Существуют ли действительно хорошие практики, которые работают для групп, разрабатывающих код, который развертывается каждые пару недель?
MAJOR.MINOR.MICRO.REVISION
. Надеюсь это поможет. - person Sameer Singh   schedule 20.09.2013