2012-02-10 9 views
5

Uno de mis colegas recientemente notó una discrepancia entre el comando normal de git log, y el siguiente y alias:¿Por qué algunos commits de git están ocultos dentro del shell cygwin?

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

Después de un poco de hurgar, nos dimos cuenta de que puede estar relacionado con la fiesta de cygwin.

Estas son nuestras conclusiones:

  • git log --graph

    todas las confirmaciones visibles

  • git log --oneline

    algunas confirmaciones que faltan ... bien! vamos a preparar un informe de errores mediante la reorientación de la salida a un archivo de texto:

  • git log --oneline > test.txt

    Por desgracia, todos los envíos son visibles en test.txt?!? Investiguemos más deteniendo el alias. Eliminación de los códigos de color:

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

    algunas confirmaciones que falta. Por lo que debe ser una de las variables ...

[... algunos frobnications después ...]

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

    todas las confirmaciones visibles

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

    all commits visible

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

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

Nos gustaría saber por qué sucede esto.

+1

¿trató de evitar ''>' 'y' '<' 'en su definición de alias, para ver si el comando funciona mejor en su sesión de Cygwin? – VonC

+0

La eliminación de los soportes angulares no resolvió el problema. Aunque parezca extraño, ahora aparece una confirmación adicional en el registro. Pero todavía no están todos allí. – exhuma

+0

Ok, solo comprobando. – VonC

Respuesta

1

Pruebe estos para acercarse a la causa:

  • uso cygwin con un terminal diferente, dicen xterm o mintty.
  • conjunto (o unset?) $PAGER y vea cómo eso afecta el error.
  • si $PAGER es less, guardar el registro desde el interior less (S ), y/o -R para encender/apagar el procesamiento de ANSI escapa, si tiene color en.
  • tratar con --no-color, si tiene color en
  • comprobar los valores de localización, $LC_ALL, etc. $LANG tratar

LANG=C git log etc

Cuestiones relacionadas