Cómo compartir mejor el código con SmartGit

Tengo una serie de proyectos separados que comparten un código común. ¿Cuál es la mejor práctica para lograr esto en Git, y específicamente en SmartGit?

  • Tener todo en un repository gigante

  • Tenga un repository para cada proyecto, y un repository para código compartido, y use Git Submodules .

  • Tenga un repository para cada proyecto y un repository de código compartido, y use Git Subtrees . ¿Alguien puede decirme si esto es compatible con SmartGit y cómo se puede lograr?

¿Cuáles son las posibles dificultades con estos methods y cuáles son las mejores prácticas con SmartGit?

Recomiendo tener un repository para todos los proyectos o usar Submodules:

  • Si su código común está estrechamente relacionado con sus proyectos, las refactorizaciones y otros types de cambios (API) de su código común probablemente requerirán cambios en todos sus proyectos, de modo que si puede hacer todo con un compromiso en un repository , lo hará Pasar less time haciendo el control de versiones (con Git). Por ejemplo, los submodules de Git no pueden simplemente apuntar al CABEZAL de una twig, sino solo a un compromiso específico. Puede ser engorroso actualizar siempre sus submodules a la última confirmación.

  • Si su código común se parece más a una biblioteca independiente y es suficiente para actualizar sus proyectos de vez en cuando con versiones más nuevas de esa biblioteca, los submodules serán la mejor opción. Ellos están bien respaldados con SmartGit y tener repositorys separados le da, por ejemplo, la flexibilidad de compartir solo algunos de sus repositorys con otros, más adelante.

  • No hay soporte especial para Subtrees en SmartGit.

Yo usaría proyectos separados también. Hemos tenido problemas de memory con files más grandes y git + SmartGit. Estoy en dialog con syntevo en este momento. Con la última versión de SmartGit, la capacidad de copyr comentarios es muy útil. Espero que esto ayude