Dlaczego mój hak do skryptu Ruby Git jest uruchamiany z nieprawidłową wartością $ PATH?

Używam RVM. Napisałem Gitapre-commit zaczep dla projektu:

#!/usr/bin/env ruby

puts RUBY_VERSION
puts `echo $PATH`
exit(1)

który wyświetla to, gdy jest uruchamiany przez Git:

$ git ci -m 'foo'
1.8.7
/usr/libexec/git-core:/usr/bin:/usr/local/heroku/bin:/Users/mgoerlich/.rvm/gems/ruby-2.0.0-p195@global/bin:/Users/mgoerlich/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/mgoerlich/.rvm/bin:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/platform-tools:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/tools:/usr/local/bin:/usr/local/sbin:/Users/mgoerlich/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/core_perl:/Users/mgoerlich/bin:/usr/local/share/npm/bin:/usr/local/share/npm/bin

Wydaje się, że działa z niewłaściwą wersją Ruby, ponieważ$PATH nie jest taki sam jak w bash, zsh lub sh. Wygląda na to, że git manipuluje$PATH. Po uruchomieniu ręcznym otrzymuję to:

$ .git/hooks/pre-commit
2.0.0
/usr/local/heroku/bin:/Users/mgoerlich/.rvm/gems/ruby-2.0.0-p195@global/bin:/Users/mgoerlich/.rvm/rubies/ruby-2.0.0-p195/bin:/Users/mgoerlich/.rvm/bin:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/platform-tools:/Users/mgoerlich/adt-bundle-mac-x86_64-20130219/sdk/tools:/usr/local/bin:/usr/local/sbin:/Users/mgoerlich/.dotfiles/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/bin/core_perl:/Users/mgoerlich/bin:/usr/local/share/npm/bin:/usr/local/share/npm/bin

Na wyjściu haka zatwierdzenia znajdują się dwie ścieżki poprzedzające, jedna z nich/usr/bin gdzie znajduje się plik wykonywalny systemu Ruby.

Czy to znane zachowanie? Czy mogę to jakoś manipulować? Wiem, że mogę określić pełną ścieżkę do poprawnej wersji Ruby w shebang, ale to nie jest to, czego chcę.

questionAnswers(3)

yourAnswerToTheQuestion