I have a typical Subversion set-up:
/trunk
/branches/client-one
/branches/client-two
/branches/client-three
Trunk holds main development and branches hold client customizations. Now I then, I port changes from trunk into branches and viceversa:
[+] /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
It works pretty flawlessly, except when I need to rename a file. Now matter how I do it, I always get tree conflicts and, depending on the steps I take, I lose local modifications or I can no longer port future changes.
Is it possible to rename a file and still be able to port changes back and forth?
[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
(Most documentation on the subject implies that tree conflicts happen when two developers modify the same file; this is not the case since I'm the sole developer.)