¿Por qué algunos commits de git están ocultos dentro del shell cygwin?

Uno de mis colegas notó recientemente una discrepancia entre el command de git log normal y el siguiente alias:

 git log --graph --pretty=format:'%Cnetworking%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative 

Después de hurgar un poco, descubrimos que puede estar relacionado con el cygwin bash.

Aquí están nuestros hallazgos:

  • git log --graph

    todos los commits visibles

  • git log --oneline

    algunos compromisos faltan … ¡está bien! preparemos un informe de errores networkingirigiendo el resultado a un file de text:

  • git log --oneline > test.txt

    Por desgracia, todos los commits son visibles en test.txt ?!? Investiguemos más deteniendo el alias. Eliminar códigos de color:

  • git log --graph --pretty=format:'%h - %d %s (%cr) <%an>'

    algunas faltan. Entonces debe ser una de las variables …

[… algunas frobnications más tarde …]

  • git log --graph --pretty=format:'%h - %d %s (%cr)'

    todos los commits visibles

  • git log --graph --pretty=format:'%h - %d %s <%an>'

    todos los commits visibles

Parece romperse después de ciertas combinaciones de variables. En este caso (%cr) <%an>

También probé el mismo repository en Linux y allí funciona como se espera (es decir, todas las confirmaciones se muestran en el logging).

Nos gustaría saber por qué está pasando esto.

Pruebe estos para acercarse a la causa:

  • use cygwin con un terminal diferente, digamos xterm o mintty.
  • establecer (o unset?) $PAGER y ver cómo eso afecta el error.
  • si $PAGER es less , guarde el logging desde dentro less ( S ) y / o -R para activar / desactivar el procesamiento de escapes ANSI, si tiene color.
  • testing con –no-color, si tienes color en
  • revisa tu configuration local, $LC_ALL , $LANG etc. testing

LANG=C git log etc