¿Cómo puedo combinar entre sucursales cuando el nombre del paquete es diferente?

Me pregunto si hay una manera fácil de combinar entre las ramas del mismo proyecto de Android donde el nombre del paquete (y por lo tanto los nombres de directorio) son diferentes. Dado que voy a tener muchas sucursales y todos ellos necesitan mantenerse al día, estoy buscando la mejor manera de hacer estas fusiones de manera eficiente.

El árbol de directorios de nuestro proyecto para Android tiene este aspecto

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

Cuando hacemos una versión personalizada para un cliente, cambiaría el nombre del paquete, como client1app o client2app. Necesita nombres de paquetes diferentes si existen en el Android Market como diferentes aplicaciones para diferentes clientes. Así que hago ramas separadas que contiene idénticos nombres de archivos y estructura de directorios, excepto el nombre de la carpeta src que debe cambiarse para que coincida con el nombre del paquete. Así que client1app o client2app tendrán la siguiente estructura de directorios:

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

Los nombres de archivos de esas carpetas siguen siendo idénticos a mainproject. Es sólo que el nombre del directorio es diferente. (El contenido del archivo es casi idéntico excepto por la cláusula de paquete.)

Utilizamos SVN para el control de código fuente. Así que cuando me fusiono de cherrypick de mainproject a client1app, creo que tendría que fusionar los archivos de nivel superior y otros directorios primero y luego realizar una combinación manualmente para src \ com \ mycompany \ mainproject a src \ com \ mycompany \ client1app. Son cinco combinaciones diferentes, (para el nivel superior y cuatro subdirectorios). Si no fuera por los nombres de directorio que son diferentes, esto sería un simple paso sencillo de fusión, y sé cómo hacer eso.

Pregunta 1: ¿Hay alguna configuración que pueda decirle a SVN que \ src \ com \ mycompany \ mainproject y \ src \ com \ mycompany \ client1app contienen los mismos nombres de archivo al fusionar? O alguna otra forma de cerezo se fusionan fácilmente entre las dos ramas?

Pregunta 2: Git sería un mejor ajuste para esto?

Un proyecto de la Biblioteca de Android con el código común le ayudaría más con esto. Entonces no tendrías que hacer ninguna fusión en absoluto.

¿Hay alguna configuración que podría decir a SVN que \ src \ com \ mycompany \ mainproject y \ src \ com \ mycompany \ client1app contienen los mismos nombres de archivo al fusionar?

No. SVN realmente no rastrea renombrados como renombra , las combinaciones de archivos renombrados y cambiados generan los errores "conflicto del árbol" (supongo / no probado /, el mismo efecto aparecerá en ren renames)

Git sería un mejor ajuste para esto?

Sí, Git o Mercurial o Bazaar tienen rename-tracking y más fácil merge-path como resultado. Yo, personalmente, prefiero más estilo mercurial de selección manual que la heurística de Git, pero los gustos pueden diferir

  • Cordova error building - EPERM, operación no permitida
  • Importar proyecto de prueba de Android en Eclipse desde el control de versiones
  • ¿Cuál es la forma correcta de importar un proyecto de Android Studio en un repositorio de SVN?
  • Eclipse está intentando construir los archivos en mis directorios .svn ... ¿cómo puedo decirle que se detenga?
  • Cómo subir un proyecto de estudio de Android a Subversion por primera vez
  • ¿Cómo hago el desarrollo de Android desde varios ordenadores?
  • Qué archivos debo agregar a SVN ignorar en un proyecto utilizando Android Studio
  • Número de revisión en SVN
  • Android y los sistemas de control de versiones, la carpeta commit gen o poner en la lista de ignorar?
  • La carpeta "gen" de Android y SVN - enemigos amargos
  • ¿Cuál es la mejor estructura para un proyecto SVN de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.