SVN: объединить локальные изменения в другую рабочую копию
У меня есть две рабочие копии одного и того же проекта, каждая из которых переключается на другую ветку. Можно ли объединить локальные изменения в одном проекте с другой рабочей копией?
Ответы
Ответ 1
Вы не можете объединить две отдельные рабочие копии, но есть некоторые вещи, которые вы можете сделать.
Если изменения внесены в существующие файлы, самый простой способ - создать патч с помощью svn diff
, а затем применить этот патч к другой рабочей копии. Например. в первой рабочей копии:
svn diff > patch
И затем вы примените его в другом:
patch -p0 < patch
И как обычно, вы хотите запустить patch
с помощью параметра --dry-run
, чтобы убедиться, что он работает в первую очередь.
Однако, если ветки не имеют одинакового макета файла, вы не можете просто взять патч и применить его. В этом случае вам нужно просто просто перенести другие локальные изменения, а затем использовать svn merge
как обычно
Ответ 2
Вы можете создать патч на одной рабочей копии (svn diff
) и применить его к другой (patch
).
http://ariejan.net/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/
Ответ 3
Если ваши изменения включают удаления, использование патча GNU не приведет к его сокращению. Если вы хотите, чтобы изменения были зафиксированы в обеих ветвях, зафиксируйте их в одном, затем svn объедините эти изменения в другую ветку. Если вы вносили изменения в ветку A и нуждались в них в ветке B, svn переключил вашу ветвь. Рабочая копия в ветвь B.