2009-04-09 19 views
8

¿Hay una manera de "git svn dcommit" de un git-svn repositorio clonado:¿Hay una manera de "git svn dcommit" de un git-svn repositorio clonado:

Tengo varias sucursales en mi SVN , a veces es una rama muy pequeña y es bueno tenerla en el mismo directorio, pero a veces estas ramas crecen y es bueno mover todo a otra carpeta.

Pero cuando hago un clon git desde este repositorio local a otro lugar en mi disco git-svn pierde toda su información y no sé cómo volver a conectarlo. Supongo que podría hacer una copia de la carpeta, pero hacerlo a través de git sería más agradable.

Respuesta

13

Una vez que hayas clonado un repositorio git-svn, puedes obtener la información que necesitas ejecutando git svn init con los mismos parámetros con los que se creó el repositorio original. De acuerdo con the WebKit git-svn instructions, el truco es usar update-ref para conseguirse a un estado donde se puede avanzar rápidamente a la punta del árbol SVN:

git svn init -T trunk http://svn.webkit.org/repository/webkit 
git update-ref refs/remotes/trunk origin/master 

Los parámetros exactos pasaron a git svn init dependerá de la configuración de su subversión Repo y git-svn clon.

+0

¿No debería 'svn git init' ir * antes *' git actualización-ref'? – jfs

+0

Sí, debería. +1 para la ref de Webkit, aunque me dijo exactamente lo que necesitaba saber. – jstevenco

+0

No estoy seguro de cómo me equivoqué. Se arregló el orden de los comandos ahora. –

3

Desafortunadamente no, como git-clone no clona la información git-svn al realizar una copia. Puede leer más sobre la situación here.

-1

La información svn no es mucho más que unos pocos bits de información en el archivo .git/config, ¿verdad? Podrías limitarlos y ser bueno para ir.

1

Es posible, pero tiene que configurar las cosas de una manera diferente. Así es como lo hacemos en numpy - el repositorio fue creado con git-svn-automirror

Usted puede mirar en el _git_update_mirror función para ver cómo hacerlo manualmente

+0

Entonces, el punto es asegurarse de que las referencias remotas (que normalmente se ven refs/remotos/origen/*), deberían be 'refs/remotes/* para coincidir con los que usa git-svn (de forma predeterminada: svn-remote.svn.branches = branches/*: refs/remotes/*)? – inger

Cuestiones relacionadas