Repositorio SVN para código común -phonegap

Estoy creando una aplicación de phonegap que será respaldada por

Android Windows phone iOS BlackBerry 

Hasta ahora, el desarrollo principal ocurre en Android y todos los JS / HTML se copyn a otras plataforms. Continuando, tenemos que mantener repositorys diferentes para todas las plataforms para un mantenimiento más fácil.

La manera más obvia que se me ocurre es crear una carpeta para cada plataforma y mantener el código allí. Pero en ese caso, si estamos modificando cualquier contenido de www (JS / HTML / CSS / Images), tendremos que copyr manualmente a todos los repos.

¿Existe una mejor manera de manejar files comunes, o copyr el mismo file en 4 ubicaciones es la única salida?

Una posible solución sería dividir tu código en las siguientes carpetas / repositorys:

  • common – contiene todos los files independientes de la plataforma
  • Android – contiene files específicos de Android
  • Windows: contiene files específicos de Windows
  • ios – contiene files específicos ios
  • blackberry: contiene files específicos de blackberry

Y luego crea un pequeño script que puede crear un proyecto válido a partir de estos files siguiendo estos pasos:

  • Copie todos los files de la carpeta common a una carpeta de target
  • Copie los files de una carpeta de plataforma (por ejemplo, Android) a la carpeta de target (y sobrescriba los files existentes)
  • package de la carpeta de destino a un package de aplicación y deployment en un dispositivo

Por lo tanto, debe cambiar la plataforma de forma independiente solo en una location y seguir teniendo el cambio para agregar el código específico de la plataforma (o sobrescribir el código común para una plataforma específica).

Puedes usar "Externos" para esto. Un repository externo le permite include un repository separado dentro de un repository dado, de modo que dentro de los repositorys específicos de su dispositivo, puede include el repository común "JS / HTML".

De hecho, nos hemos alejado de este enfoque, porque significa que cada vez que alguien comete una nueva versión en el repository compartido, ese cambio se propaga inmediatamente a los otros repositorys. Esto puede causar problemas para administrar esas dependencies, por lo que usamos un script de compilation para verificar una versión específica del repository compartido como parte del process de compilation.

Deberías usar gruntjs para build tu aplicación