Repositorio SVN para código común -phonegap

Estoy creando una aplicación de teléfono que será compatible con

Android Windows phone iOS BlackBerry 

Hasta ahora, el desarrollo principal sucede en Android y todos los JS / HTML se copyn en otras plataforms. Continuando, tenemos que mantener diferentes repositorys para todas las plataforms para facilitar el mantenimiento.

La forma más obvia en que puedo pensar 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 todos los repositorys.

¿Hay 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 su código en las siguientes carpetas / repositorys:

  • común: contiene todos los files independientes de la plataforma
  • Android: contiene files específicos de Android
  • Windows: contiene files específicos de Windows
  • ios – contiene ios files específicos
  • blackberry: contiene files específicos de Blackberry

Y luego cree un pequeño script que pueda crear un proyecto válido 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) en la carpeta de target (y sobrescriba los files existentes)
  • empaquetar la carpeta de destino en un package de aplicación y desplegarla en un dispositivo

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

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

De hecho, nos hemos apartado 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 al administrar esas dependencies, por lo que usamos un script de compilation para ver una versión específica del repository compartido como parte del process de compilation.

Debe usar gruntjs para build su aplicación