No se puede ejecutar git gui usando cygwin en Windows

Solía ​​lanzar git gui dentro de mi console cygwin sin ningún problema pero desde que actualicé cygwin recibí el siguiente post de error:

$ git gui Application initialization failed: no display name and no $DISPLAY environment variable Error in startup script: invalid command name "tk_messageBox" while executing "tk_messageBox -icon error -type ok -title "git-gui: fatal error" -message $err" invoked from within "if {[catch {package require Tcl 8.4} err] || [catch {package require Tk 8.4} err] } { catch {wm withdraw .} tk_messageBox \ -icon error \ -typ..." (file "/usr/lib/git-core/git-gui" line 34) 

¿Alguien que sabe cómo resolver esto?

Editar : actualizado en marzo de 2016 para dar count de packages renombrados, etc.

Cygwin's gitk y git gui requieren X11. Esto significa que debe instalar algunos de los packages de Cygwin X11 y configurarlos para poder abrir la GUI.

Esto debería ponerlo en funcionamiento:

  1. Ejecute el instalador de Cygwin nuevamente (descargue la configuration pertinente – *. Exe nuevamente si lo necesita).
  2. En la list de packages, select instalar "xinit" en la categoría X11. Haga clic en siguiente, acepte todas las dependencies e instálelas.
  3. En el menu Inicio de Windows, debe tener un nuevo grupo: Cygwin-X. A partir de ahí, ejecute el server XWin.
  4. En su shell Cygwin, ejecute export DISPLAY=:0.0 .

Tendrá que repetir el paso 3 cada vez que reinicie su computadora, y el paso 4 cada vez que abra un nuevo shell Cygwin (o simplemente ejecute echo "export DISPLAY=:0.0" >>~/.profile para que se ejecute automáticamente siempre creas un nuevo caparazón).

En los comentarios, parece que algunas personas reciben errores que dicen "no se pudo conectar para mostrar": 0.0 "'. Si obtienes eso, coloca el mouse sobre la X que debería haber aparecido en la bandeja del sistema (puede que necesites hacer clic en el ícono de la tapa si el ícono X ha estado oculto); el título emergente debería decir algo como "Servidor Cygwin / X: 1.0". Utilice ese ": 1.0" (o lo que sea que vea) como el valor de DISPLAY en el paso 4, en lugar de ": 0.0", asegurándose de include los dos puntos.

Si tiene otros problemas para iniciar el server X, probablemente encontrará que tiene un file llamado ~/.xsession-errors ; revisa el contenido de eso para ver qué está mal. También verifique si tiene un file ~/.startxwinrc , e intente eliminarlo y ver si eso soluciona el problema.

Para los interesados, la razón por la que los packages X11 no se instalan automáticamente es que no son técnicamente necesarios : es posible utilizar un server X11 diferente del que instala Cygwin cuando instala el package "xinit".

Después de pasar más time de lo que me gustaría admitir, logré encontrar una solución de trabajo para ejecutar gitk desde mi caparazón cygwin. No pude get ninguna de las instrucciones para iniciar el server X para que funcione de manera confiable y, al final, la solución fue bastante simple.

La advertencia más importante es la necesidad de tener instalado Git para Windows, cuya descarga se puede encontrar aquí .

Ahora para toda la parte de ejecución de gitk . Git for Windows incluye una carpeta cmd, que tiene un file de command de Windows gitk.cmd . Eso es todo lo que necesitas llamar para tener abierto gitk .

 $ [path-to-git]/cmd/gitk.cmd 

En mi sistema, la ruta de Git está en "C: \ Archivos de progtwig (x86) \ Git", por lo que el command se vería así:

 $ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd" 

En mi ~ / .bash_profile he agregado una function para manejar esa llamada que se ve así:

 gitk() { "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd" } 

Espero que esto ayude a alguien más a tratar de entender esta pieza.

 echo "export DISPLAY=:0.0" >>~/.profile 

o

 echo "export DISPLAY=:0.0" >>~/.bash_profile 

en mi caso

Evita X11 y agrega el soporte de git gui a cygwin

Si quiere evitar X11 (¿y quién no?):

  1. Instalar Git para Windows (no cygwin) http://git-scm.com/download/win
  2. Abra su shell de commands C:\Program Files (x86)\Git\Git Bash
  3. ejecutar git gui

(opcional) Si desea permanecer en cygwin para ejecutar git gui , agregue una function en su ~/.bashrc para hacerlo. La única advertencia es no nombrar la function git debido a la recursión y la confusión con los arguments, y el hecho de que usted es el shell de Git for Windows también puede estar agregando la misma function cuando se inicia. También puede encontrarse con problemas de ruta, así que tenga cuidado con la configuration correcta de sus routes.

 # call git gui from Git For Windows path with `ggui` gg() { command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui 2>/dev/null; } 

Cuando termine de editar su .bashrc, actualice su configuration:

 source ~./bashrc 

y luego simplemente:

 gg 

Después de seguir los 4 pasos dados por me_and y tititou36, aún puede tener problemas con el XWin que acaba de morir después de que inició XwinServer.

La razón es que depende de una terminal / console CygWin, que es el host, y el Xwin muere si no hay una console CygWin.

La solución para esto es:

Inicie una console Cygwin. (puede hacer que comience automáticamente poniendo el command mintty en el file .startxwinrc bajo su directory de inicio de cygwin).

Esto es lo que funcionó para mí:

cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"

Desde cygwin package manager, haga lo siguiente:

instala xorg-server y algunas fonts xorg-x11-fonts-Type1 , xorg-x11-fonts-Type1 especialmente

A continuación, cree un enlace a las carpetas de fonts de Windows para que git gui use

ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts

Cierre el terminal cygwin y ábralo nuevamente, luego escriba

startxwin &> /dev/null &

git gui &

Según la respuesta de AndrewD: usa el git de cygwin, pero usa Windows Git's gitk y git gui . En otras palabras, desinstale los packages git-gui y gitk de cygwin (si está instalado). Entonces, which gitk debería apuntar al file de Windows, no al file binary de cygwin en /usr/bin .