Bonjour à tous, j'ai un problème sur SourceTree.

J'ai installer GrumPHP via Composer, mais quand je fait un commit via SourceTree, celui-ci m'affiche une erreur.

Le message d'erreur est le suivant :

git -c diff.mnemonicprefix=false -c core.quotepath=false commit -q -F C:\Users\Brandon\AppData\Local\Temp\o1e4dnnc.q43
which: no php in (/mingw32/libexec/git-core:/mingw32/bin:/usr/bin:/c/Users/Brandon/bin:/c/Users/Brandon/AppData/Local/Atlassian/SourceTree/gitflow_local/gitflow:/bin:/mingw32/bin:/mingw64/bin:/c/Program Files (x86)/Atlassian/SourceTree/tools:/c/Users/Brandon/AppData/Local/Atlassian/SourceTree/git_extras)
/usr/bin/env: php: No such file or directory
Terminé avec des erreurs, voir ci-dessus

Alors que quand je fait un commit via CMDer, tout ce passe correctement.

λ git commit -am "Test"
GrumPHP detected a pre-commit command.
GrumPHP is sniffing your code!
GrumPHP detected a commit-msg command.
GrumPHP is sniffing your code!

[master f3948de] Test
 1 file changed, 1 insertion(+), 1 deletion(-)

Merci à vous.

6 réponses


Je ne connais pas du tout Windows (pour le dev du moins), mais fait déjà un "which php" sur CMDer, il devrait te dire l'emplacement de PHP chez toi.

Je suppose qu'ensuite, il te faudra l'ajouter dans le PATH pour que SourceTree le trouve (ce qui est étrange par contre, c'est que tu as bien du le mettre pour CMDer ?), il te faudra surement redémarrer SourceTree.

C'est une piste en attendant d'avoir une réponse de qqun qui a eu le cas.

J'ai déjà regarder de ce coter là.

Sur CMDer, il m'indique bien le PATH, sous l'invite de commande windows aussi.
En tapant la commande "php -v" m'indique bien la version de php sur CMDer et l'invite de commande windows.

Je ne comprend pas pourquoi celà ne fonctionne pas avec l'interface de SourceTree, sachant que si j'utilise la ligne de commande de SourceTree celà fonctionne comme les 2 autres.

D'ailleurs si t'a des conseils pour faire du dev php sur linux, je suis preneur.

Le path du "which php" se trouve dans la liste que tu fournis ?
Celle-ci : /mingw32/libexec/git-core:/mingw32/bin:/usr/bin:/c/Users/Brandon/bin:/c/Users/Brandon/AppData/Local/Atlassian/SourceTree/gitflow_local/gitflow:/bin:/mingw32/bin:/mingw64/bin:/c/Program Files (x86)/Atlassian/SourceTree/tools:/c/Users/Brandon/AppData/Local/Atlassian/SourceTree/git_extras

En ligne de commande, sourceTree utilise le terminal que tu utilises normalement (tu peux d'ailleurs modifier celui-ci dans les préférences) donc normal que cela fonctionne. Reste à savoir d'où il sort la liste de PATH et comment ajouter celle où tu as PHP (si toutefois ce n'est pas dedans, ce que semble dire l'erreur).

SourceTree n'utilise pas le même PATH d'après ce que je peut voir, et non le path du "which php" ne se trouve pas dans cette liste. Je cherche comment ajouter le path de PHP pour SourceTree mais je n'ai toujours pas trouvé pour l'instant :/.

A défaut, ajoute un pre-commit dans .git/hooks/ en y ajoutant le path de PHP

C'est se que j'ai fait, mais ça ne fonctionne toujours pas :/