J'avais l'habitude de lancer git gui dans ma console cygwin sans aucun problème mais depuis que j'ai mis à jour cygwin, j'ai le message d'erreur suivant:
$ 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)
Quelqu'un qui sait comment résoudre ce problème?
Edit : mis à jour en mars 2016 pour tenir compte des packages renommés, etc.
Gitk et git gui de Cygwin nécessitent X11. Cela signifie que vous devez installer certains des packages Cygwin X11 et les configurer pour pouvoir ouvrir l'interface graphique.
Cela devrait vous permettre d'être opérationnel:
export DISPLAY=:0.0
.Vous devrez répéter l'étape 3 à chaque redémarrage de votre ordinateur et l'étape 4 à chaque fois que vous ouvrez un nouveau Cygwin Shell (ou exécutez simplement echo "export DISPLAY=:0.0" >>~/.profile
pour qu'il s'exécute automatiquement chaque fois que vous créez un nouveau shell).
Dans les commentaires, il semble que certaines personnes obtiennent des erreurs indiquant "impossible de se connecter pour afficher": 0.0 "". Si vous obtenez cela, passez la souris sur le X qui aurait dû apparaître dans votre barre d'état système (vous devrez peut-être cliquer sur la petite icône vers le haut si l'icône X a été masquée); le titre pop-up devrait dire quelque chose comme "Cygwin/X Server: 1.0". Utilisez ": 1.0" (ou ce que vous voyez) comme valeur pour DISPLAY
à l'étape 4, plutôt que ": 0.0", en veillant à inclure les deux points.
Si vous rencontrez d'autres problèmes lors du démarrage du serveur X, vous constaterez probablement que vous disposez d'un fichier appelé ~/.xsession-errors
; vérifiez le contenu de ce qui ne va pas. Vérifiez également si vous disposez d'un ~/.startxwinrc
fichier, et essayez de le supprimer et de voir si cela résout le problème.
Pour les intéressés, la raison pour laquelle les packages X11 ne sont pas installés automatiquement est qu'ils sont pas techniquement nécessaires : il est possible par des moyens quelque peu compliqués d'utiliser un serveur X11 différent de celui installé par Cygwin lors de l'installation le package "xinit".
Après avoir passé plus de temps que je ne voudrais l'admettre, j'ai réussi à trouver une solution de travail pour exécuter gitk
à partir de mon cygwin Shell. Je n'ai pu obtenir aucune des instructions pour démarrer le serveur X pour fonctionner de manière fiable, et à la fin, la solution était assez simple.
La plus grande mise en garde doit avoir installé Git pour Windows, le téléchargement pour cela peut être trouvé ici .
Maintenant, pour toute la partie gitk
en cours d'exécution. Git pour Windows inclut un dossier cmd, qui a un gitk.cmd
fichier de commandes Windows. C'est tout ce que vous devez appeler pour que gitk
soit ouvert.
$ [path-to-git]/cmd/gitk.cmd
Sur mon système, le chemin Git est dans "C:\Program Files (x86)\Git", donc la commande ressemblerait à ceci:
$ "/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
Dans mon ~/.bash_profile, j'ai ajouté une fonction pour gérer cet appel qui ressemble à ceci:
gitk() {
"/cygdrive/c/Program Files (x86)/Git/cmd/gitk.cmd"
}
J'espère que cela aidera quelqu'un d'autre à essayer de comprendre cette pièce.
Évitez X11 et ajoutez la prise en charge de git gui
À cygwin
Si vous voulez éviter X11 (et qui ne le ferait pas?):
C:\Program Files (x86)\Git\Git Bash
git gui
(facultatif) Si vous voulez rester dans cygwin pour lancer git gui
, ajoutez une fonction dans votre ~/.bashrc
pour faire il. La seule mise en garde est ne nommez pas la fonction git
à cause de la récursivité et de la confusion avec les arguments, et du fait que vous êtes Git pour Windows Shell peut également ajouter la même fonction au démarrage. Vous pouvez également rencontrer des problèmes de chemin, alors faites attention à bien configurer vos chemins.
# call git gui from Git For Windows path with `ggui`
gg() {
command "/cygdrive/c/Program Files (x86)/Git/bin/git" gui 2>/dev/null;
}
Lorsque vous avez terminé de modifier votre .bashrc, actualisez vos paramètres:
source ~./bashrc
puis simplement:
gg
echo "export DISPLAY=:0.0" >>~/.profile
ou
echo "export DISPLAY=:0.0" >>~/.bash_profile
dans mon cas
Après avoir suivi les 4 étapes données par me_and et tititou36, vous pouvez toujours avoir des problèmes avec le XWin juste après avoir démarré le XwinServer.
La raison en est qu'il repose sur un terminal/console CygWin, qui est l'hôte, et le Xwin meurt s'il n'y a pas de console CygWin.
La solution pour cela est:
Démarrez une console Cygwin. (vous pouvez le faire démarrer automatiquement en plaçant la commande mintty
dans le fichier .startxwinrc
sous votre répertoire personnel cygwin.
Voici ce qui a fonctionné pour moi:
cat >> ~/.bash_profile <<< "export DISPLAY=:0.0"
Dans le gestionnaire de packages cygwin, procédez comme suit:
installer xorg-server
et quelques polices xorg, xorg-x11-fonts-Type1
surtout
Créez ensuite un lien vers les dossiers de polices Windows pour git gui
utiliser
ln -s /cygdrive/c/Windows/Fonts /usr/share/fonts/win-fonts
Fermez le terminal cygwin et ouvrez-le à nouveau puis tapez
startxwin &> /dev/null &
git gui &
Basé sur la réponse d'AndrewD: utilisez git
de cygwin, mais utilisez gitk
et git gui
De Windows Git. En d'autres termes, désinstallez les packages git-gui et gitk de cygwin (s'ils sont installés). Ensuite, which gitk
Devrait pointer vers le fichier Windows, pas le binaire cygwin dans /usr/bin
.