¿Cómo me fusiono entre twigs cuando el nombre del package es diferente?

Me pregunto si existe una manera fácil de fusionar entre las twigs del mismo proyecto Android donde el nombre del package (y por lo tanto los nombres del directory) son diferentes. Como tendré muchas sucursales y todas ellas deben mantenerse actualizadas, estoy buscando la mejor manera de hacer estas fusiones de manera eficiente.

El tree de directorys de nuestro proyecto Android se ve así

\assets \libs\... \res\... \src\com\mycompany\mainproject AndroidManifest.xml build.xml myproject.iml myproject.ipr 

Cuando creamos una versión personalizada para un cliente, cambiaría el nombre del package, como client1app o client2app. Necesita diferentes nombres de packages si deben existir en el Android Market como diferentes aplicaciones para diferentes clientes. Así que hago twigs separadas que contienen nombres de files y estructura de directorys idénticos, a exception del nombre de la carpeta src, que debe modificarse para que coincida con el nombre del package. Entonces client1app o client2app tendrán la siguiente estructura de directory:

 \src\com\mycompany\client1app \src\com\mycompany\client2app 

Los nombres de files debajo de esas carpetas todavía son idénticos a mainproject. Es solo que el nombre del directory es diferente. (El contenido del file es principalmente idéntico, excepto por la cláusula del package).

Usamos SVN para control de fuente. Entonces, cuando selecciono cherrypick fusionar de mainproject a client1app, creo que primero tendría que fusionar los files de nivel superior y otros directorys, y luego realizar una combinación manualmente para src \ com \ mycompany \ mainproject a src \ com \ mycompany \ client1app. Eso es cinco fusiones diferentes, (para el nivel superior y cuatro subdirectorys). Si no fuera porque los nombres de los directorys son diferentes, sería una simple fusión en un solo paso, y sé cómo hacerlo.

Pregunta 1: ¿Hay alguna configuration que pueda decirle a SVN que \ src \ com \ mycompany \ mainproject y \ src \ com \ mycompany \ client1app contienen los mismos nombres de file al fusionarse? ¿O alguna otra forma de cherrypick se fusiona fácilmente entre las dos twigs?

Pregunta 2: ¿Git sería una mejor opción para esto?

Un proyecto de biblioteca de Android con el código común te ayudaría al máximo con esto. Entonces no tendrías que hacer ninguna fusión en absoluto.

¿Hay alguna configuration que pueda decirle a SVN que \ src \ com \ mycompany \ mainproject y \ src \ com \ mycompany \ client1app contienen los mismos nombres de file al fusionarse?

No. SVN realmente no rastrea los renombrados como renombrados , las fusiones de files renombrados y cambiados generan errores "Conflicto de tree" (supongo / no probado /, el mismo efecto aparecerá en los renombrados de los directorys)

¿Git sería mejor para esto?

Sí, Git o Mercurial o Bazaar tienen un seguimiento de cambio de nombre y una ruta de combinación más fácil como resultado. Personalmente, prefiero más estilo mercurial de selección manual que la heurística de Git, pero los gustos pueden diferir