¿Cómo muestro el número de revisión de SVN en el logging de git?

Estoy personalizando mi logging de git para que esté todo en 1 línea. Específicamente, agregué el siguiente alias:

lg = log --graph --pretty=format:'%Cnetworking%h%Creset - %C(yellow)%an%Creset - %s %Cgreen(%cr)%Creset' --abbrev-commit --date=relative 

Entonces, cuando ejecuto git lg , veo lo siguiente:

 * 41a49ad - zain - commit 1 message here (3 hours ago) * 6087812 - zain - commit 2 message here (5 hours ago) * 74842dd - zain - commit 3 message here (6 hours ago) 

Sin embargo, quiero agregar el número de revisión SVN allí también, por lo que se ve algo así como:

 * 41a49ad - r1593 - zain - commit 1 message here (3 hours ago) 

El git log normal muestra el número de revisión de SVN, así que estoy seguro de que esto debe ser posible. ¿Cómo hago esto?

Cuando dice que "el git log normal muestra el número de revisión de SVN", supongo que quiere decir que está tratando con un repository manejado por git svn , que de manera pnetworkingeterminada agrega una línea como esta al final de las confirmaciones sincronizadas:

 git-svn-id: svn://path/to/repository@###### <domain> 

Ahora, en lo que se refiere a git, esto es solo text aleatorio, así que dudo que puedas encontrar un % acceso para leer el número de revisión ###### desde allí.

En este punto, su mejor opción sería simplemente analizar la salida del git log simple de git log usted mismo. Aquí hay un punto de partida crudo:

 git log -z | tr '\n\0' ' \n' | sed 's/\(commit \S*\) .*git-svn-id: svn:[^@]*@\([0-9]*\) .*/\1 r\2/' 

Considere el command git svn

  • tiene una function de logging similar a la de git log : git svn log
  • tiene la opción find-rev (para recuperar la revisión SVN de una key SHA1) (introducido en git 1.6.0 )

Sin embargo, no estoy seguro de que puedas combinar esas dos opciones en una sola línea de command.
Un script (un poco como este, que no es exactamente lo que quieres pero que aún puede dar una idea) podría estar en order.


sdaau agrega en los comentarios :

Un ejemplo de esto:

 git svn find-rev $(git log --max-count 1 --pretty=format:%H) 

Correr:

 git rev-parse HEAD 

que te da git commit hash.

A continuación, use ese commit hash para ejecutar:

 git svn find-rev <commit_hash> 

Lo que te da una revisión svn.

Terminó con algo como esto:

 git svn log --oneline -1 | cut -d '|' -f1 

Eso da la última revisión de ese repository (puede modificar los parameters del git svn log para mostrar otra revisión, pero mantenga --oneline y -1 ), pero con un espacio en blanco al final (algo así como "r9441 " ) que creo que debería ser fácil desnudarse

Espero eso ayude…