¿Hay alguna manera de personalizar el resultado de la culpa de git?

git log tiene una buena opción --format para especificar cómo debe formatearse la salida.

Pero la git blame no parece tener un equivalente, aunque el resultado pnetworkingeterminado de la blame no es del todo humano. Me gustaría ver mucho less.

Por ejemplo, en lugar de:

 5600cab7 js/sidebar/VehicleGrid.js (Rene Saarsoo 2009-10-08 18:55:24 +0000 127) if (x > y) { b5f1040c js/map/monitoring/VehicleGrid.js (Mihkel Muhkel 2010-05-31 07:20:13 +0000 128) return x; 

Me gustaría tener:

 5600cab7 Rene Saarsoo (1 year ago) 127: if (x > y) { b5f1040c Mihkel Muhkel (5 months ago) 128: return x; 

Me imagino que podría escribir un guión para analizar el resultado de la git blame --porcelain de git blame --porcelain pero dado el horrendo resultado pnetworkingeterminado de la blame creo que alguien por ahí debe haber hecho algo al respecto.

¿Algunas ideas? ¿O algún consejo para implementar dicho script?

Editar: lo resolvió escribiendo pequeñas secuencias de commands .

Puede usar formatting de salida alternativo: git annotate o git blame -c .

Puede cambiar el formatting de las dates con la --date=<format> (o la variable de configuration blame.date ), donde <format> es una de relativa, local, por defecto, iso, rfc, short . Consulte las páginas de manual de git-blame y git-log para get más información.

Para mí, la bandera -s funciona, porque todo lo que necesito es la identificación SHA1, después de lo cual busco la confirmación para get más detalles. Un guión definitivamente parece excesivo. ¿Es posible que la bandera -s no estuviera disponible hace un año?

Teniendo en count que la interfaz web como Trac o Redmine integran los resultados de git blame , supongo que ya se ha realizado un análisis sintáctico.

Puedes ver en este Redmine Defecto 3832 un ejemplo con este script de ruby:

  • git_adapter.rb