У меня типичная настройка Subversion:
/trunk
/branches/client-one
/branches/client-two
/branches/client-three
Магистраль содержит основные разработки, а филиалы - настройки клиента. Время от времени я портирую изменения из транка в филиалы и наоборот:
[+] /trunk/readme-trunk.txt
[port] /trunk/readme-trunk.txt -> /branches/client-one/readme-trunk.txt
[port] /trunk/readme-trunk.txt -> /branches/client-two/readme-trunk.txt
[port] /trunk/readme-trunk.txt -> /branches/client-three/readme-trunk.txt
Работает довольно безупречно, кроме случаев, когда мне нужно переименовать файл. Теперь независимо от того, как я это делаю, у меня всегда возникают конфликты деревьев и, в зависимости от предпринимаемых шагов, я теряю локальные модификации или больше не могу переносить будущие изменения.
Можно ли переименовать файл и при этом переносить изменения туда и обратно?
[rename] /trunk/readme-trunk.txt -> /trunk/readme.txt
[port] /trunk/readme.txt -> /branches/client-one/readme.txt
[port] /trunk/readme.txt -> /branches/client-two/readme.txt
[port] /trunk/readme.txt -> /branches/client-three/readme.txt
[edit] /trunk/readme.txt
[port] /trunk/readme.txt -> /branches/client-one/readme.txt
[port] /trunk/readme.txt -> /branches/client-two/readme.txt
[port] /trunk/readme.txt -> /branches/client-three/readme.txt
(Большая часть документации по этому вопросу подразумевает, что конфликты деревьев происходят, когда два разработчика изменяют один и тот же файл; это не так, поскольку я являюсь единственным разработчиком.)