Usando git-svn con un layout svn ligeramente extraño

Estoy haciendo una pasantía y están utilizando SVN (aunque ha habido alguna discusión sobre mudarse a hg o git, pero eso no es en el futuro inmediato). Me gusta git así que me gustaría usar git-svn para interactuar con el repository svn y ser capaz de hacer commit locales y twigs y cosas por el estilo (rebase antes de comprometerse a svn, por supuesto). Sin embargo, hay una pequeña arruga, el layout del repository svn es un poco raro. Básicamente se ve así

/FOO +-branches +-tags +-trunk +-FOO +-myproject 

Básicamente, mi proyecto se ha quedado atascado en un subdirectory de tronco, y hay otro proyecto que también es un subdirectory del tronco. Si uso git-svn y solo clono el directory de mi proyecto en lugar de la raíz, ¿se confundirá o causará algún problema? Simplemente me pregunto porque los numbers de compromiso se incrementan para todo el repository y no solo para mi proyecto, por lo que se comprometerá a estar apagado o algo por el estilo. Probablemente no empujaría ninguna twig o label a SVN porque preferiría hacer esas localmente en git y no sé cómo git-svn trata con twigs y tags de todos modos, y nadie más las usa, así que me parece poco sentido al hacerlo. ¡Gracias por la ayuda!

Yo uso git-svn en un repository svn multiplataforma multiproyecto.

Por lo general, solo tengo el punto de reserva de git local directamente en el directory svn repo que me interesa, y renuncio a cualquier soporte nativo para sucursales, entre otras cosas, aunque escucho cosas buenas sobre cómo el soporte mejora. Parece haber soporte de git svn branch en la documentation de git-core.

La forma en que lo hago:

 git svn init http://repo.farts.com/svn/path/to/the/directory/of/project git svn fetch 

Y cuando es hora de comprometerse …

 git stash git svn rebase git stash pop git commit -am "Some really awesome stuff" git svn dcommit 

No he tenido problemas con esto. Hacer estallar el alijo inicia una combinación si ha habido cambios en el código en el que se ha basado. Rebase mantiene la historia lineal. Puede haber una mejor manera de hacerlo, pero he sobrevivido, con el process anterior más Git MergeTool.

También puede ver las opciones de layout personalizadas que vienen con git svn para designar el tronco, las twigs y las tags en relación entre sí. Puede especificar cada uno de ellos por separado con -T trunk -b branches -t tags: estos son relativos por defecto, pero puede proporcionar routes absolutas.

Además, como consejo, personalmente usaría el cliente SVN en function de la sensibilidad de la pasantía. No soy miembro de un buen ciudadano de git-town al decir esto, pero el control de la fuente puede ser un gran dolor en el culo, y también terreno sagrado para las personas: si causa una sola onza de inconveniencia a alguien, su casi no vale la pena. Dicho eso, si puedes mantenerte independiente y no cargar a nadie con tus elecciones de herramientas, feliz git'ing 😉

Josh