git layout para proyecto con dependencies de biblioteca?

Hola, este es el escenario con el que quiero ayuda.

Tengo dos proyectos en bitbucket (similar a github ). Una es una aplicación, la otra es una Biblioteca. Entonces, mientras estoy trabajando en la aplicación, quiero poder enviar parches a la biblioteca (quiero mantenerlos separados con diferentes twigs). La aplicación también depende de esta Biblioteca.

El layout en el disco podría verse más o less así:

$MyProject/Src $MyProject/Library 

Deseo poder enviar parches y bifurcarlos de forma independiente, ¿puedo usar el subtree de git o debería ir con los submodules de git?

¿Hay una tercera alternativa que sea aún mejor?

Una tercera alternativa podría ser:

  • poner la aplicación y la biblioteca en repositorys separados
  • publica el package de tu biblioteca cuando quieras
  • haga que su aplicación haga reference a la versión de la biblioteca que desea.

Una ventaja es que no tendrás que intentar hacer cosas extravagantes con Git.

Dos inconvenientes serían que:

  • Si aún no empaqueta / distribuye su biblioteca, puede requerir algún trabajo adicional para poner en marcha
  • si un cambio en su biblioteca rompe su aplicación, es posible que no lo note de inmediato (pero es probable que tenga el mismo problema con los submodules)

Tal vez sea solo yo, pero personalmente uso google repo (secuencias de commands python que usan git para numbers de repository masivos) en lugar de submodules.

Tal vez vale la pena investigar por ti. Solo necesita definir un xml con sus orígenes, repositorys git de twigs, etc. y el repository hace el rest.

Luego puede definir fácilmente la estructura de su carpeta como desee o cambiar a otra combinación de bifurcación.