2013-07-08 5 views
2

У меня есть ветвь в SVN, которую я хочу обновить с новыми изменениями из ствола. У меня также есть файлы с локальными изменениями в этой ветке. Я еще не хочу совершать некоторые из этих изменений.Объединение магистрали в ветку с локальными изменениями

Если я пытаюсь объединить изменения из ствола в этой отрасли, он дает мне ошибку:

Error: Cannot merge into a working copy that has local modifications 

Есть ли способ объединить ствол в ветви удаленно на сервере, так что я могу просто обновить ветвь обычно после?

ответ

6

Это настоятельно рекомендуется, что вы используете чистый и до даты копию рабочего каталога для объединения.

Однако, если вы хотите разорвать эти правила кардинальные и стрелять себе в ногу, Subversion дает средства на эти пули:

$ svn merge --force --allow-mixed-revisions $repo_url 

Параметр --allow-mixed-revisions позволит слияние иметь место даже если в рабочей копии есть смешанные изменения. Параметр --force позволит вам объединиться, даже если есть локальные изменения.

На самом деле существует несколько сценариев, где использование --force может быть хорошей идеей, но я не могу придумать никакой причины для --allow-mixed-revisions.

+0

К сожалению --force не работает с --reintegrate –

+0

Флаг '--reintegrate' полностью меняет способ слияния. Слияние изменяется от трехстороннего слияния до простого двухстороннего слияния. Основная цель - заставить поток _development_, над которым вы работаете, соответствовать потоку _development_, из которого вы сливаетесь. Вы не можете использовать смешанные версии, потому что это не имеет никакого смысла, и вы должны иметь чистую проверку. Новые версии клиента Subversion пытаются определить, является ли слияние объединением _reintegration и устраняет необходимость в флаге '--reintegrate'. –

4

Нет. Вы должны пройти процесс слияния на рабочей копии, разрешить потенциальные конфликты и совершить.

Но рабочая копия может быть другой рабочей копией из той, над которой вы сейчас работаете: просто выполните новую проверку ветки в новый каталог, сделайте слияние в этом новом каталоге и зафиксируйте.

+0

Это сработало для меня. Слейте в чистый чек, зафиксируйте, а затем запустите обновление в своей ветке с локальными изменениями. – tim654321