Registro de Git: filtrar por date de autor de la confirmación

Tengo tal compromiso

commit 8a183536da1641afa6bd5a27ae391b387b7cd052 Author: hidden AuthorDate: Fri Sep 7 10:13:59 2012 Commit: hidden CommitDate: Fri Dec 7 17:29:24 2012 

Quiero filtrar el logging y mostrar el compromiso por AuthorDate .

Intenté --since & --until opciones de hasta, pero en realidad filtra el CommitDate .

Eso significa que solo puedo get el compromiso por

 git log --since='2012-12-01' --until='2012-12-10' 

Si deseo get el filter de compromiso antes de start_date '2012-09-01' y end_date '2012-09-10'

¿Algun consejo?

 git log --format=format:"%ai %aE %s" 

y luego grep por AuthorName y / o date!

Me temo que necesitas hacer algunas secuencias de commands:

 git log --format="%ad %H" --date=iso | sort | ruby -ane 'date = $F[0] ; hash = $F[3] ; puts hash if ("2013-08-23".."2013-09-26").cover?(date)' 

me dió:

 3eddb854eaea971e9a60147153f0f3c9be4f1a5a
 dfeefd4715c4fddef0957c5aff238c525bb1def6
 db654badb97f3784286171d4645e9face6a42865
 62cdba07e6ae0cd28752491a83f584d3e18a5619
 7643a0458a54200f8944583d66c089d63c1bf688
 23b720852a36e959d0f45f9d11f05d4aa7ee0cb9
 f729ec9c5bf37ee0284a8db47cbc79a0b53145bb
 bc2d647ae86fbff1246ba163a5a99d25ed2f3523
 a0752b3cbae39698449be953153ddaafe35c054c
 8e88fffc75cbdda333c86cb4f5eb9b5b30263c27

Desafortunadamente, el git log 3eddb854eaea971e9a60147153f0f3c9be4f1a5a..8e88fffc75cbdda333c86cb4f5eb9b5b30263c27 no está garantizado para funcionar porque esos commits pueden estar en twigs diferentes.

Vamos a explicar lo que hice:

  1. --format="%ad %H" – logging de formatting como author_date commit_hash líneas
  2. --date=iso – dates en formatting YY-mm-dd HH:MM:SS
  3. sort – command Unix que ordera las líneas alfabéticamente; es adecuado para orderar las dates en formatting ISO
  4. ruby -ane – ejecuta el script de ruby. -n significa ejecutar para cada línea, -a dividir esas líneas y poner campos en $F matriz $F , -e script de precisión para ejecutar
  5. ("2011-02-23".."2011-02-26").cover?(date) – crea un range de dos cadenas y comtesting si la date lo incluye inclusive (en el sentido de order alfabético, no estuvimos parsing aquellas dates)

No tengo idea de qué hacer a continuación (para darle un logging más agradable), pero me alegro de moverlo a este punto.

A veces quiero saber las confirmaciones autorizadas por mí en una date determinada. Para eso uso git log --all --author=jpo --format="%ai %s" |grep -E ^2015-09-01 . Lamentablemente, ese enfoque no funcionará para el filtrado por range de dates en general, pero para el range utilizado en la pregunta podría hacerse fácilmente: git log --all --author=jpo --format="%ai %s" |grep -E ^2012-12-(0.|10) Si desea get más información acerca de los commits además de la date del autor y el post de confirmación, solo agregue más parameters a la cadena de formatting (consulte la sección PRETTY FORMATS de la página de git help log ).