Практический способ фиксации изменений в системе управления версиями в нескольких ветках.

StackOverflow https://stackoverflow.com/questions/404948

Вопрос

Распространенный сценарий при использовании системы управления версиями — наличие ветки разработки вместе с ветками выпуска с поддержкой версий.Мы используем CVS с HEAD в качестве ветки разработки и веткой с именем, например.Release-6-2 для текущей версии продукта.

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

Когда файл, который нужно зафиксировать, синхронизирован в двух ветвях, я, в частности, ищу быстрое решение «зафиксировать эти ветки».

(Мы используем CVS в качестве системы контроля версий, поэтому любые ответы, относящиеся к CVS, приветствуются.Однако также интересно посмотреть, могут ли другие системы контроля версий предложить лучший способ.На стороне клиента мы используем Eclipse, поэтому решения Eclipse хороши.Но если у вас есть решение, отличное от Eclipse, это тоже нормально.)

Это было полезно?

Решение

Примените исправление к самой старой требуемой ветке выпуска.Затем объедините изменение со следующей веткой выпуска и так далее, пока не объедините изменение из последней ветки выпуска с HEAD.

Предположим, самая старая версия вашего продукта — 1.0, а также у вас есть версии 1.1 и 1.5.В HEAD добавляются новые функции для следующего выпуска.Если ошибка обнаружена в версии 1.0, вы применяете исправление к ветке 1.0.Объедините ветку 1.0 с веткой 1.1.Объедините ветку 1.1 с веткой 1.5 и, наконец, объедините ветку 1.5 с веткой HEAD.

Лучше объединять ветки в ветки, чем применять исправления вручную к каждой ветке.

При использовании CVS вам придется вручную отслеживать, какие версии объединяются, чтобы не включать одни и те же версии при следующем объединении.

Если вы перейдете на использование Subversion, слияние из ветки в ветку станет проще.Инструмент Subversion Eclipse будет отслеживать, какие ревизии вы ранее объединили, значительно упрощая задачу повторных слияний между двумя ветвями.

Перейти на Subversion с CVS очень просто.Вы не будете первым, кто сделал такой шаг.

Другие советы

Как сказал Авалше, лучше объединять ветки.Чтобы выбрать слияние, используйте метод, описанный в Прагматичный контроль версий с использованием CVS очень хорошо:

В ветке - тег(PRE_FOO) перед изменением, внесите изменения и зафиксируйте, пометьте после изменения (POST_FOO).Затем в багажнике выполните слияние с помощью тегов:

cvs up -j PRE_FOO -j POST_FOO

Слияние между ветвями в SVN намного проще и безопаснее, а преобразовать всю историю CVS в SVN очень просто — см. cvs2svn.Вам следует использовать либо SVN 1.5, либо – с более ранними версиями SVN – svnmerge.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top