¡Transición de SVN a Git (git-svn, múltiples twigs en el espacio de trabajo y sin administración de dependencies)!

Actualmente estamos tratando de pilotear la transición de Git a SVN para boost la producción y la queueboración dentro de nuestro equipo.

Sin embargo, estamos enfrentando algunos problemas con la traducción y la búsqueda de contrapartes que actualmente funcionan para nosotros. He estado leyendo en Git y parece que no puedo encontrar una respuesta específica .

Aquí hay algunos problemas:

  1. Nuestro proyecto se compone de varios subproyectos, cada uno construido como un proyecto propio. ¿Cómo gestionamos estos subproyectos con Git? Uno de los principales problemas que he encontrado es cuando cambio de sucursales, tengo que cambiar de forma individual las twigs entre

    He leído sobre el soporte de Subproject como se menciona en https://git.wiki.kernel.org/index.php/SubprojectSupport , pero también he leído que esto no es compatible con git-svn.

  2. Actualmente contamos con varias sucursales de SVN, cada una representando un lanzamiento. La mayoría de nosotros tiene todas las twigs relevantes (por lo general, 2-3) en nuestro espacio de trabajo. El cambio de twigs puede ser correcto si es rápido, pero otro problema es la configuration de nuestras routes de compilation, etc. (considerando que no tenemos ningún sistema de administración de dependencies en nuestro nivel de desarrollo y todo se hace de forma manual). ¿Hay alguna forma de evitar esto en Git, ya sea permitiendo múltiples twigs activas en un área de trabajo, o mediante un cambio rápido?

No estoy seguro de si habrá alguna respuesta correcta específica, pero señalarme los resources relevantes también será útil. Gracias.

Su pregunta es bastante amplia (o posiblemente contiene varias preguntas), pero intentaré una respuesta general:

Nuestro proyecto se compone de varios subproyectos, cada uno construido como un proyecto propio. ¿Cómo gestionamos estos subproyectos con Git?

Por lo general, los pondría en un solo repository de Git, cada uno en su subdirectory. Puede usar varios repositorys, pero eso solo tiene sentido si los proyectos son versionados, ramificados y publicados de manera independiente. Las sucursales son siempre por repository en Git (a diferencia de SVN, donde bifurca un solo directory), por lo que la regla general es: lo que se divide juntas comparte en repos, lo que se ramifica por separado obtiene su propio repository.

Actualmente contamos con varias sucursales de SVN, cada una representando un lanzamiento. La mayoría de nosotros tiene todas las twigs relevantes (por lo general, 2-3) en nuestro espacio de trabajo. El cambio de twigs puede ser correcto si es rápido, pero otro problema es la configuration de nuestras routes de compilation, etc. (considerando que no tenemos ningún sistema de administración de dependencies en nuestro nivel de desarrollo y todo se hace de forma manual). ¿Hay alguna forma de evitar esto en Git, ya sea permitiendo múltiples twigs activas en un área de trabajo, o mediante un cambio rápido?

No puede tener múltiples twigs desprotegidas en un directory de trabajo (¿cómo funcionaría eso?). Puedes hacer múltiples clones (cada uno con su propio directory de trabajo), luego verifica diferentes twigs. Sin embargo, no estoy seguro de que sea la mejor solución para ti.

El cambio de twigs en git es muy rápido, esencialmente el time necesario para la E / S del sistema de files para cambiar los files que necesitan cambios.

Acerca de las routes de compilation: si cambia de twigs en git, las routes no cambian, porque el cambio ocurre dentro del directory de trabajo.

Una nota final: parece que realmente debería search algún tipo de gestión de dependencies y gestión de artefactos. Hacer todo esto solo con el código fuente es bastante propenso a errores y difícil.