Calcule los times de espera usando git commits

Hasta ahora obtuve este command realmente útil, que me ayuda a determinar, cuando trabajé en un proyecto:

git log --author="MyUsername" --pretty=format:"%cd; %h; %s" > time.csv 

Pero estoy interesado, si hay una manera de averiguar cuánto time he trabajado en el compromiso. Teóricamente, la forma de hacerlo sería tomar el file comprometido con la date de cambio más antigua en este compromiso y calcular el intervalo de time entre esto y el compromiso.

¿Es esto posible / exacto? ¿Cuál sería el código para lograr esto?

No, esto no es posible, un commit es una unidad atómica en git que rastrea el contenido: git está orientado al contenido y tiene su propio sistema de files simple / blob que usa sobre el sistema de files del sistema operativo, por lo que no se puede verificar " change-date en (a) commit "con git. Lo único que puede verificar son las marcas de time de compromiso y los intervalos de time entre las confirmaciones, como ya lo hace.

Lo único que puedo sugerir es un gancho precompromiso. Cuando git ejecuta su gancho precompromiso personalizado, puede ver todos los files que está a punto de comprometer, search la timestamp más temprana en su sistema de files, como sugirió y escribir estos metadatos en algún lugar. Tal vez incluso includelo con el compromiso. Cuán confiable sería … bueno, como se menciona en los comentarios, dependerá de la contabilidad de sus actividades físicas extrañas: / Tal vez usted puede hacer que el gancho de precompilation sea un editor o un cuadro de post donde puede ingresar el número de horas dedicadas a trabajar en el compromiso en sí.