90 votes

OSX 10.10 yosemite beta on git pull : git-sh-setup : Aucun fichier ou répertoire de ce type

Après la mise à jour vers OSX 10.10 Yosemite Beta, en exécutant git pull renvoie l'erreur suivante :

/Library/Developer/CommandLineTools/usr/libexec/git-core/git-pull : ligne 11 : git-sh-setup : Aucun fichier ou répertoire de ce type

J'ai vérifié le répertoire git-core référencé et le git-sh-setup.sh y est.

Les autres commandes git fonctionnent exactement comme prévu

100voto

pilif Points 7172

Je pense que la solution la plus propre pour l'instant est de changer la commande initiale dans votre session iTerm pour être

/usr/bin/login -f <your user name>

Cela résout le problème pour moi.

Un point de données supplémentaire pour l'analyse du problème : Il semble que dans la version 10.10, plusieurs copies de la variable d'environnement PATH existent et que les sous-shells semblent préférer la deuxième copie.

Vous pouvez reproduire ce phénomène en lançant n'importe quelle application cacao sur la console telle que lancée par iTerm. Vous obtiendrez un avertissement qui ressemble à ceci :

2014-06-04 19:23:09.859 gitx[14676:362580] *** -[NSProcessInfo environment]: Warning: duplicate definition for key 'PATH' found in environment -- subsequent definitions are ignored.  The first definition was '(the path I have configured in my shell)', the ignored definition is '/usr/bin:/bin:/usr/sbin:/sbin'.

Je pense qu'il s'agit d'un problème de la version 10.10 et non d'iTerm, mais quelque chose que fait iTerm le fait apparaître (cela ne se produit pas dans Terminal.app).

Mise à jour : Ce problème est causé par iTerm qui fait des choses "intéressantes" à l'environnement. Mettez à jour vers la version officielle de iTerm 2.0 pour que ce problème disparaisse.

35voto

Jeremy Huddleston Points 190

Je crois que c'est un bogue dans iTerm lorsqu'on utilise zsh. Ils n'invoquent délibérément pas /usr/bin/login, et ils n'utilisent pas execle pour effacer les variables d'environnement comme ils devraient le faire.

20voto

Marthyn Olthof Points 308

Le téléchargement de la dernière version d'iTerm2 a réglé ce problème pour moi !

16voto

Feng Points 159

Une autre solution, modifier votre iTerm2

cd /Applications/iTerm.app/Contents/MacOS
mv iTerm iTerm-bin

cat > iTerm <<EOF
#!/bin/sh
unset PATH
\${0}-bin
EOF

chmod +x iTerm

C'est fait.

Profitez de votre iTerm2 avec Yosemite !

13voto

Ubiquill Points 121

Comme solution temporaire, j'ai modifié les lignes 11, 12 et 336 de git-pull pour qu'elles soient :

. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-setup

. /usr/local/Cellar/git/2.0.0/libexec/git-core/git-sh-i18n

eval="/usr/local/Cellar/git/2.0.0/libexec/git-core/git-merge $diffstat $no_commit $verify_signatures $edit $squash $no_ff $ff_only"

Cela corrige git-pull pour le moment, mais je suis sûr qu'il existe une meilleure solution.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X