Я использую TortoiseSVN для своего проекта C++ и пытаюсь "повторно интегрировать ответвление" назад в соединительную линию.
Мой случай достаточно прост так, чтобы для каждого файла, который изменился в ответвлении, я хотел бы, чтобы оно полностью перезаписало файл соответствия в соединительной линии. К сожалению, TortoiseSVN более умен, чем я, таким образом, он объединяет каждую пару файлов - приводящий к некоторому непоследовательному коду. Например, некоторые строки кода, которые были удалены в ответвлении, восстанавливаются в объединенной версии.
Там какой-либо путь состоит в том, чтобы вынудить TortoiseSVN использовать наивное поведение слияния перезаписи всех измененных файлов?
Спасибо, Dan
Вот как это сделать, просто используя SVN (в файловой системе ничего не происходит):
Небольшое улучшение в ответе webwesen , так как я действительно не вижу простого способа:
Насколько мне известно, в настоящее время это невозможно в svn, поэтому TortoiseSVN не может вам помочь.
Чтобы немного упростить (хорошо, сильно), возьмите в качестве примера команду svn update
. Если в вашей рабочей копии есть изменения как также как репозиторий, но без реальных конфликтов, svn update
просто объединит изменения репозитория в вашу рабочую копию.
Я не думаю, что есть способ обойти это. Если у вас были реальные конфликты, вы можете использовать параметр командной строки - accept ACTION
, чтобы сохранить только локальные изменения (например).Но если вы хотите указать действие принятия для любого файла, измененного как в репозитории, так и в рабочей копии, вам, к сожалению, не повезло.
Мне пришло в голову, что запросить у разработчиков svn опцию командной строки для этого случая может быть идеей, а не тем, что она будет выпущена вовремя, чтобы помочь вам здесь.
Проблема разрешения конфликтов, о которой я упоминал, предполагает ужасно уродливый прием, который я не рекомендую. Используя ваши любимые инструменты, получите список файлов, которые изменились в ветке. Теперь для каждого файла в этом списке измените его в стволе, добавив необычный символ к каждой строке. Зафиксируйте изменения в стволе. Выполните слияние, чтобы обновить ветку перед повторной интеграцией, но используйте - accept
, чтобы предотвратить попадание каких-либо ужасных файлов магистрали. Затем выполните повторную интеграцию, снова используя - accept
чтобы перезаписать ужасные файлы ствола.
Я должен добавить, что вы не можете сделать это с TortoiseSVN, по крайней мере, не очевидно, потому что он не поддерживает - accept
, по крайней мере, я не смог найти.
Ну, я сказал , что это было ужасно уродливо. Не пытайтесь делать это дома! (Я, конечно, не знал.)
Для этой цели разработана команда «svn merge», которая позволит вам выполнить слияние за один шаг. Инструкции здесь .