Предположим, у меня есть следующее:
trunk/
|-+ d1/
| |-- bar.c
| \-- foo.c
\-+ d2/
\-- baz.txt
Я делаю svn cp trunk branch
и фиксирую.
Теперь я делаю уборку в branch
.
$ svn mkdir src
$ svn mv d1 src/
$ svn commit
$ edit src/d1/foo.c
$ svn commit
Это оставляет меня со следующим в branch
branch/
|-+ d2/
| \-- baz.txt
\-+ src/
\-+ d1/
|-- bar.c
\-- foo.c
Между тем в trunk
произошли некоторые изменения (редактирование foo.c
и bar.c
).
Теперь, с философской точки зрения, я хочу, чтобы структура каталогов branch
была отражена в trunk
, и я хочу, чтобы изменения, которые я внес в его файлы, тоже там. Но я также хочу правки, которые произошли в trunk
, когда я работал. Поэтому я хочу объединить содержимое trunk/d1/foo.c
и branch/src/d1/foo.c
.
Слияние в любом направлении (trunk
до branch
или branch
до trunk
) дает мне массу конфликтов с деревьями. Есть ли лучший способ продолжить работу, чем запускать svn info
для каждого конфликта и решать проблемы тщательно и вручную?