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

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

3 ответов


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

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

svn diff > patch

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

patch -p0 < patch

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

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


Вы можете создать патч на одной рабочей копии (svn diff) и применить его к другой (patch). http://ariejan.net/2007/07/03/how-to-create-and-apply-a-patch-with-subversion/


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