@Aquahawk

SVN: Мерджинг багофиксов из транка в стейбл

Для начала наш вокфлоу:
Есть trunk и есть стабильные ветки, например ^/branches/stable-2
В транке ведётся обычная повседневная разработка. Фичебранчи для разработки создаются только для крупных больших фич.
Тестер у нас работает только со стабильной веткой.
В определённый момент, когда функционал готов в некотором виде и его надо отдать на тестирование(первичное, поддерживающее) я делаю
svn cp ^/trunk ^/branches/stable-3 -m "creating stable-3 with new functional"
далее тестер его тестирует, и баги фиксятся в транке и в стейбле делаю
svn merge ^/trunk
svn ci -m "sync"
и так делаю до тех пор пока в транке нет новых фич.

Теперь ситуация по которой есть вопрос

Допустим потом под коммитом 100 в trunk приходит коммит который не нужно мерджить в стебл
а 101 и 102 надо.
тогда я делаю так
смотрю что смерджено
svn pg "svn:mergeinfo"
вижу там что-то типа
/trunk:53-99
И понимаю что смерджено всё что надо, до того сотого коммита который мне не нужен, значит мерджим просто с его пропуском
svn merge -r100:102 ^/trunk
при этом мерджинфо приобретает вид
/trunk:53-99,101-102
И я всё это коммичу.

Вопрос:
Мне придётся помнить что этот коммит не стоит мерджить, и потеряется возможность просто мерджиться без указания коммитов.
А хотелсь бы как то пометить что эти коммиты сознательно мерджить не нужно.
Есть вариант прописать их в мерджинфо но реально не мерждить. Но он мне не очень нравится и категорически не нравится нашему svn гуру. Делал ли кто-либо из вас так, и как вы вообще поступаете в таких ситуациях?
  • Вопрос задан
  • 3481 просмотр
Решения вопроса 1
@chemodax
Операция record-only merge является рекомендованным способом блокировать ревизию для merge. Для этого даже есть специальная опция: "--record-only"

Т.е. ветке нужно выполнить команду:
svn mege --record-only -c 100 "^/trunk"

См. раздел Blocking changes в главе Advanced Merging
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Aquahawk Автор вопроса
А вот нашёл и первый минус такой системы. Я сначала мерджил только запись о тех коммитах которые не требуют мерджа, а потом делал
svn merge ^/trunk
и это уже привело к тому что я случайно смерждил чуть больше чем было надо, т.к. коммит приехал в момент этого мерджинга.
Волей случая я уведел это и коммит был реально нужен, но можно и не заметить, потому всё равно придётся указывать диапазон, от текущего BASE до того коммита на котором я решил это дело мерджить.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы