La mejor forma de organizar un proyecto de Android en un repository de subversión

Estoy en el process de aprender Subversion, y hasta ahora he aprendido una cosa o dos, y acabo de crear una count de Google Code y un repository svn para almacenar un proyecto simple, mi problema es cómo organizar mi svn repository. Imagina que acabo de crear un proyecto de Android llamado "Hello World" y su proyecto de testing llamado "Hello World Test", ¿debería importar ambos proyectos al tronco de mi repository? ¿Tiene sentido poner mi proyecto de testing en el baúl del repository también?

En el sistema de file local:

El mejor enfoque recomendado por Google es, de Official Dev Guide :

Puede crear un proyecto de testing en cualquier lugar de su sistema de files, pero el mejor enfoque es agregar el proyecto de testing para que su directory raíz pruebe / esté en el mismo nivel que el directory src / del proyecto de la aplicación principal. Esto lo ayuda a encontrar las testings asociadas con una aplicación. Por ejemplo, si el directory raíz de su proyecto de aplicación es MyProject, entonces debe usar la siguiente estructura de directory:

MyProject/ AndroidManifest.xml res/ ... (resources for main application) src/ ... (source code for main application) ... tests/ AndroidManifest.xml res/ ... (resources for tests) src/ ... (source code for tests) 

En el repository SVN:

El objective de la subversión es el trabajo en equipo; sin duda, el mejor enfoque es utilizar la estructura tronco / tags / twigs:

 https://svn/my-repo/ MyProject/ branches/ 1.1.1-fork/ AndroidManifest.xml res/ src/ tests/ tags/ version-1.0.0/ AndroidManifest.xml res/ src/ tests/ version-1.1.0/ trunck/ AndroidManifest.xml res/ src/ tests/ AndroidManifest.xml res/ src/ 

¿Cómo lo usamos usualmente?

  • al desarrollar, siempre pagar / comprometer desde trunk /.
  • antes de cada lanzamiento, etiquete el código listo para lanzar (desde el tronco) debajo de las tags /.
  • si trabaja con otros al mismo time (cambio importante), agregue una copy del código (desde el enlace troncal) debajo de las twigs / y comience a trabajar en su bifurcación; una vez hecho esto, vuelva a fusionarlo en el enlace troncal para la próxima versión.

Desde mi propia experiencia, la estructura más eficiente y razonable (utilizada tanto para el sistema de files local como para el sistema de control de versiones) para un grupo de proyectos es el Proyecto de Múltiples Módulos de Maven , eche un vistazo a estas muestras en GitHub .

Depende completamente de ti. Personalmente, si tengo un proyecto de testing, ambos pertenecen a la misma carpeta.

 svn /HelloWorld /HelloWorld /HelloWorldTest 

De esa manera, si tiene twigs o tags, puede mantenerlas en la subcarpeta también.

Al final del día, es solo una estructura de carpetas como, por ejemplo, su carpeta de inicio o "mis documentos", y puede organizar (o calmar su TOC) como desee.

En cuanto a mi experiencia trabajando con proyectos Java y svn creo que es más útil tener las classs de negocios y las classs de testing dentro del mismo proyecto porque ambos son parte del mismo proyecto.