2012-02-22 12 views
63

Solía ​​lanzar GUI git dentro de mi consola Cygwin sin ningún problema, pero que no actualizaba cygwin Tengo el siguiente mensaje de error:No se puede lanzar GUI git utilizando cygwin en las ventanas

$ 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) 

Cualquiera que sepa cómo ¿resuelve esto?

+0

puede considerar el inicio de [Git para Windows] (http://git-scm.com/download/win), que proporciona git gui, utilizando en su lugar un shell distinto de cygwin/msys. Simplemente tiene que importar sus rutas de cygwin/windows para que cygwin no intente usarlo en lugar de la versión de cygwin, lo que puede causar algunos problemas. – AndrewD

Respuesta

119

Editar: Llega al corriente en el de marzo de 2016 para la cuenta de paquetes de renombrados etc.

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

Esto debería que pueda ponerse en marcha:

  1. ejecutar el instalador Cygwin nuevo (descargar el correspondiente setup-*.exe de nuevo si es necesario).
  2. En la lista de paquetes, seleccione instalar "xinit" en la categoría X11. Haga clic en siguiente, acepte todas las dependencias e instálelas.
  3. En el menú Inicio de Windows, debe tener un nuevo grupo: Cygwin-X. A partir de ahí, ejecute el servidor XWin.
  4. En su shell Cygwin, ejecute export DISPLAY=:0.0.

Tendrá que repetir el paso 3 cada vez que reinicie el equipo, y el paso 4 cada vez que abre un nuevo shell Cygwin (o simplemente correr echo "export DISPLAY=:0.0" >>~/.profile para que se ejecute automáticamente cada vez que se crea un nuevo shell).

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 incluir los dos puntos.

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

Para los interesados, el motivo por el que los paquetes X11 no se instalan automáticamente es que son not technically needed: es posible utilizar un servidor X11 diferente del que Cygwin instala cuando instala el paquete "xinit" .

+2

La apariencia no es lo que solía ser, pero al menos funciona de nuevo. ¡Gracias! –

+4

@Stijn: De acuerdo. También preferí la interfaz anterior (no menos porque tengo un diseño de teclado de Windows personalizado que X11 no puede entender). La [justificación del cambio] (http://cygwin.com/ml/cygwin/2012-02/msg00447.html) es que Tcl/Tk (el idioma en el que se ejecutan la GUI y Gitk, etc.) se ha movido a X11. , para evitar quedar atrapado con un Tcl/Tk obsoleto, Cygwin tuvo que hacer el mismo cambio. –

+0

Tiene razón acerca de "no es técnicamente necesario". Conozco personas que prefieren (rojo) usar Exceed. (¿Por qué? No sé ...) –

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

o

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

en mi caso

+0

Bashrc también funcionó como un hechizo en Cygwin/Win10 – ATorras

6

Evitar X11 y añadir git gui apoyo a cygwin

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

  1. Instalar Git para Windows (no cygwin) http://git-scm.com/download/win
  2. abrir su consola de comandos C:\Program Files (x86)\Git\Git Bash
  3. plazo git gui

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

# 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 haya terminado de editar el .bashrc, actualice la configuración:

source ~./bashrc 

y luego simplemente:

gg 
+0

Si el nombre de la función git-gui en lugar de GG, se abrirá cuando se escribe el comando 'git gui' - git usar eso como una extensión. – configurator

9

Después de pasar más tiempo de lo que me gustaría admitir , Logré encontrar una solución de trabajo para ejecutar gitk desde mi shell cygwin. No pude obtener ninguna de las instrucciones para iniciar el servidor 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 en here.

Ahora para todo el funcionamiento gitk parte. Git para Windows incluye una carpeta cmd, que tiene un archivo de comando de Windows gitk.cmd. Eso es todo lo que necesita para llamar para tener gitk abierto.

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

En mi sistema la ruta de Git se encuentra en "C: \ Archivos de programa (x86) \ Git" lo que el comando sería el siguiente:

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

En mi ~/.bash_profile I' hemos añadido una función para manejar esa llamada que se parece a esto:

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

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

+0

Esta es una solución brillante, muchas gracias. – Augustin

2

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 haber iniciado el XwinServer.

La razón es que se basa en un terminal/consola CygWin, que es el host, y el Xwin muere si no hay una consola CygWin.

La solución para esto es:

Iniciar una consola de Cygwin. (puede hacer que comience automáticamente poniendo el comando mintty en el archivo .startxwinrc en el directorio de inicio de cygwin).

2

Esto es lo que funcionó para mí:

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

De gestor de paquetes cygwin, haga lo siguiente:

instalación xorg-server y algunas fuentes de xorg, xorg-x11-fonts-Type1 especialmente

A continuación, cree un enlace a las carpetas de fuentes de Windows para git gui para usar

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

Cierre la terminal de Cygwin y abrirá de nuevo a continuación, escriba

startxwin &> /dev/null &

git gui &

0

Sobre la base de la respuesta de Andrewd: Uso cygwin de git, pero el uso de Windows Git de gitk y git gui. En otras palabras, desinstale los paquetes git-gui y gitk de cygwin (si está instalado). Luego, which gitk debe apuntar al archivo de Windows, no al archivo binario cygwin en /usr/bin.

Cuestiones relacionadas