2010-12-23 9 views
15

En nuestro proyecto administrado de git-svn, tenemos 3 proyectos de upstream que se guardan en repositorios de git nativos en GitHub. Dado que el código fuente de esos proyectos iniciales está bajo nuestro control y cambia con frecuencia, nuestra solución actual, es decir, volver a implementar los artefactos de construcción en el superproyecto cada vez que cambiemos algo es bastante engorroso.Uso de submódulos de git en un proyecto de git-svn

lo que me gustaría tener es la siguiente:

parent project (git-svn): 
    --> submodule 1 (git) 
    --> submodule 2 (git) 
    --> submodule 3 (git) 

De esta manera, el código fuente de submódulos 1-3 se compila junto con las fuentes para el proyecto estupendo, pero puedo empujar cambios en submódulos por separado.

La pregunta es: ¿qué sucede cuando I git svn dcommit en el proyecto principal? ¿Esto incluso funciona?

ACTUALIZACIÓN Hm, me acaba de crear una estructura simple proyecto, tratando de parecerse a este escenario, y recibo este mensaje de error al intentar dcommit en el SuperProject:

a0301b11f3544a1e71067ff270eded65e4c8afbd doesn't exist in the repository at /opt/local/libexec/git-core/git-svn line 4775 
Failed to read object a0301b11f3544a1e71067ff270eded65e4c8afbd at /opt/local/libexec/git-core/git-svn line 574 

Cualquier ideas/sugerencias ?

+0

En nuestro mundo, usamos Hudson para compilar y desplegar submódulos en un repositorio local como Artifactory. Maven está configurado para capturar la versión de SNAPSHOT, por lo que toman una implementación nueva todos los días, o cada vez que compilamos con -U. Hudson se puede configurar para enviar un correo electrónico para una nueva implementación. – OleTraveler

+0

Actualizar re bounty buscando respuesta/solución alternativa actualizada. Creo que la respuesta a esta pregunta es lo que busco: [¿Es git svn compatible con el subárbol de git?] (Http://stackoverflow.com/questions/13447705/is-git-svn-compatible-with-git- subárbol) –

+0

posible duplicado de [git-svn - # object # no existe en el repositorio en/opt/local/libexec/git-core/git-svn línea 4706] (http://stackoverflow.com/questions/ 2771033/git-svn-object-doesnt-exist-in-the-repository-at-opt-local-libexec-git-cor) –

Respuesta

10

No se puede hacer esto, los submódulos de Git no se pueden insertar en un repositorio svn a través de git-svn, no es compatible.

+2

Sí, mientras tanto movimos todo nuestro código fuente a una cuenta pagada de GitHub. Problema resuelto. – Matthias

5

git-svn no permite esto, pero si tiene acceso a su servidor de repositorio SVN, puede instalar SubGit en él. Creará un repositorio de Git vinculado para usted, de modo que cualquier inserción se traducirá automáticamente a la revisión de SVN y viceversa. Después de eso, puede agregar submódulos al repositorio Git resultante y trabajar con el repositorio SVN usando la interfaz Git pura. Estos submódulos de Git no se traducirán a SVN.

La traducción es concurrente segura y bastante transparente (svn: ignora se traducirá a Git ignora, EOL a .gitattributes, etiquetas a etiquetas y así sucesivamente).

Cuestiones relacionadas