2010-06-07 17 views
12

Migrando de Subversion a Git usando svn2git (que internamente usa git-svn) Me gustaría saber cómo puedo encontrar una confirmación de revisión específica.Al migrar de Subversion a Git, ¿cómo puedo encontrar un compromiso dado un número de revisión?

Es bastante común tener un rastreador de problemas para tener comentarios como: "Solucionado en r12345".

Dado esto, me gustaría poder, por ejemplo, extraer la diferencia correspondiente a r12345.

Gracias de antemano.

Saludos

Respuesta

19

Teniendo en cuenta el número de revisión, se puede encontrar el Git SHA con

git svn find-rev r1938 

Yo don Sé si hay una manera 'one-shot' para obtener la confirmación o nada, pero se puede escribir algo como

git log -p `git svn find-rev r1938` 

Actualización: en cuenta que también puede agarrar el mensaje de confirmación con

nuevo
git svn log -r 1938 

actualización: find-rev en cuenta que también funciona a la inversa:

git svn find-rev c7443021942 

devuelve el número de confirmación SVN.

+0

Esto está trabajando en el repositorio que se ha utilizado para la migración. Si este repositorio se está volviendo remoto, ya no se puede usar, sin embargo, aún es posible obtenerlo usando: 'git log --grep = '@ 12345''. ¿Puedes actualizar tu respuesta con esto también? –

+0

Creo que su comentario es lo suficientemente bueno ':)' No estoy muy seguro de lo que quiere decir con "ir a control remoto", así que no puedo ayudar mucho más, lo siento. –

+0

Es decir: si empuja el repositorio local a uno remoto. Entonces solo el método 'git log' funcionará. –

-2

con Git es similar:

Fixed in d8602bb9729ddb2f28e61028cc5981cb310231a2. 

Consigue el diff con:

git show d8602bb9729ddb2f28e61028cc5981cb310231a2 
+1

nota que normalmente sólo necesita los primeros cinco o más caracteres del hash –

+0

No me dice nada de cómo puedo averiguar que svn commit 12345 se ha asignado a cometer ID: d8602bb9729ddb2f28e61028cc5981cb310231a2 después de la migración! Básicamente necesito algo como: git show -r12345 –

+0

Puede usar 'git log -1' para mostrar el ID de confirmación de la última confirmación. Alimenta esa ID a 'git show', voilá. Para encontrar una revisión de svn específica en un repositorio, intente con 'git log --grep = '@ 12345' -p'. – Bombe

Cuestiones relacionadas