SVN: объединить локальные изменения в другую рабочую копию

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

Ответы

Ответ 1

Вы не можете объединить две отдельные рабочие копии, но есть некоторые вещи, которые вы можете сделать.

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

svn diff > patch

И затем вы примените его в другом:

patch -p0 < patch

И как обычно, вы хотите запустить patch с помощью параметра --dry-run, чтобы убедиться, что он работает в первую очередь.

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

Ответ 3

Если ваши изменения включают удаления, использование патча GNU не приведет к его сокращению. Если вы хотите, чтобы изменения были зафиксированы в обеих ветвях, зафиксируйте их в одном, затем svn объедините эти изменения в другую ветку. Если вы вносили изменения в ветку A и нуждались в них в ветке B, svn переключил вашу ветвь. Рабочая копия в ветвь B.