¿Es posible no tener un subdirectory adicional al usar Git – submodule – sparse-checkout?

Quiero imitar el comportamiento como svn: externals: Tengo un proyecto maestro y tengo un código "común" en otro repository. Con SVN, yo haría:

svn co <url>/src common 

y mi estructura de carpetas sería:

 repo/common/*.cpp 

Ahora, con git + submodule + checkout disperso, esto es mucho más complicado y tengo una capa de subdirectory adicional cuando agrego el submodule;

 git submodule add <url> common 

ahora mi estructura de carpetas es:

 repo/common/src/*.cpp repo/common/lib/... 

con el pago escaso puedo asegurarme de que solo pago la carpeta src, pero aún tengo una capa más (src) en comparación con la solución svn: externals:

 repo/common/src/*.cpp 

¿hay una mejor solución para el código común? O una forma de limpiar esto? Sé que todo estará funcionando; simplemente no es tan limpio …

No puede evitar la carpeta extra del submodule, pero puede agregar un enlace simbólico (incluso en Windows) para encontrar el contenido que desea.

Agregue su submodule con su nombre de repository:

 git submodule add -b master /url/of/repo 

Agrega un enlace simbólico:

 ln -s repo/src common 

No se olvide de agregar el ' -b master ' si desea que su repository siga su twig master .
Esto es posible ya que git 1.8.2: vea " git submodule tracking latest ".