Для начала наш вокфлоу:
Есть 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 гуру. Делал ли кто-либо из вас так, и как вы вообще поступаете в таких ситуациях?
А вот нашёл и первый минус такой системы. Я сначала мерджил только запись о тех коммитах которые не требуют мерджа, а потом делал svn merge ^/trunk
и это уже привело к тому что я случайно смерждил чуть больше чем было надо, т.к. коммит приехал в момент этого мерджинга.
Волей случая я уведел это и коммит был реально нужен, но можно и не заметить, потому всё равно придётся указывать диапазон, от текущего BASE до того коммита на котором я решил это дело мерджить.