SVN Реинтегрируйте одну ветвь в магистраль несколько раз
В книге SVN указано следующее:
Как только вы выполнили реинтеграцию слияния, вы не должны продолжать использовать его для разработки. Причина этого в том, что если вы попытаетесь повторная синхронизация существующей ветки с соединительной линии позже, отслеживание слияния будет видеть вашу реинтеграцию как изменение ствола, которое еще не было сливается в ветку и будет пытаться объединить ветку в багажник сливайся обратно в ветку! Решением этого является просто создание новую ветку от туловища, чтобы продолжить следующий этап вашего развития.
В моем случае я хочу продолжать использовать ветку после реинтеграции в магистраль и продолжать реинтегрировать в магистраль несколько раз. Я сделал это, и у меня возникли две основные проблемы:
- Я продолжаю получать странные конфликты деревьев, когда я пытаюсь реинтегрировать.
- Я продолжаю получать сообщение, в котором говорится что-то вроде "Reintegrate можно использовать, только если версии с 280 по 325 были ранее"
Как мне обойти эту проблему, если я хочу иметь возможность реинтегрироваться из ветки несколько раз?
Ответы
Ответ 1
Вы можете использовать параметр -record-only merge, как описано в книге SVN, раздел Сохранение реинтегрированного ветки Live
Обратите внимание, что из Subversion 1.8 это больше не требуется, поскольку было введено автоматическое объединение реинтеграции.
Ответ 2
Я видел множество обходных решений для Google, но они заставляли меня нервничать как "хаки". Чтобы решить эту проблему, я решил сделать то, что подталкивает в сообщении. Я вернулся к своей ветке и явно объединил указанные исправления:
~/python/orb $ svn merge -r 650:693 https://paulwhippconsulting.slsapp.com/source/orb/trunk
~/python/orb $ svn commit -m 'merged revisions 650:693 from trunk'
Sending occl
Committed revision 695.
Как только я это сделал, я смог вернуться к рабочей копии туловища и без проблем реинтегрировать ветку.
Я надеюсь, что это поможет