web-dev-qa-db-fra.com

Impossible de lancer git gui en utilisant cygwin sur windows

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?

66
Stijn Vanpoucke

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:

  1. Exécutez à nouveau le programme d'installation Cygwin (téléchargez à nouveau le fichier setup - *. Exe correspondant si vous en avez besoin).
  2. Dans la liste des packages, sélectionnez pour installer "xinit" dans la catégorie X11. Cliquez sur Suivant, acceptez toutes les dépendances et installez.
  3. Dans le menu Démarrer de Windows, vous devriez avoir un nouveau groupe: Cygwin-X. À partir de là, exécutez XWin Server.
  4. Dans votre Cygwin Shell, exécutez 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".

122
me_and

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.

9
David Kartik

Évitez X11 et ajoutez la prise en charge de git gui À cygwin

Si vous voulez éviter X11 (et qui ne le ferait pas?):

  1. Installer Git pour Windows (non-cygwin) http://git-scm.com/download/win
  2. Ouvrez sa commande Shell C:\Program Files (x86)\Git\Git Bash
  3. exécutez 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
6
AndrewD
echo "export DISPLAY=:0.0" >>~/.profile

ou

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

dans mon cas

6
tititou36

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.

2
Minnie Shi

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 &

2
smac89

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.

0
C-Otto