Take the 2-minute tour ×
Server Fault is a question and answer site for system and network administrators. It's 100% free, no registration required.

I'm running OSX 10.6.5 with Git 1.7.1

I have git installed in a non-standard location (though that really should be the standard on a mac;-) in /Library/Frameworks/Git.framework. My own PATH is set fine, git works fine, until... I set up a pre-commit hook with a Ruby script:

$ git commit -m "added some Yard documentation"
.git/hooks/pre-commit: line 1: #!/usr/bin/env: No such file or directory

The pre-commit.sample runs ok, so it appears that git can't find /usr/bin/env, or much else as I've tried shebanging it directly to ruby etc. Just /bin/sh is ok.

So, where does Git get it's PATH? because it's not using mine or this wouldn't be happening. And more to the point, how do I get it to see /usr/bin/env ?

I've tested the ruby script already, it works.


Just to add:

$ cat /etc/paths                    
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin

$ cat /etc/paths.d/git
/Library/Frameworks/Git.framework/Programs

The first few lines of the Ruby script (which runs via ./pre-commit or ruby pre-commit)

#!/usr/bin/env ruby -wKU

class String
  def expand_path
    File.expand_path self
  end

  def parent_dir
    File.dirname self.expand_path
  end
end
share|improve this question
1  
If its failing on an absolute executable, its not doing this because of your path. It means that its actively unable to find the command /usr/bin/env on your system, and your PATH has nothing to do with it. –  Andrew M. Mar 6 '11 at 14:49
1  
It's not saying it can't find "/usr/bin/env", it's saying it can't find "#!/usr/bin/env". If you show the first few lines of the file, we might be able to see the problem. –  Dennis Williamson Mar 6 '11 at 14:50
1  
@Redmumba: That should give a "bad interpreter message", but you're right about the absolute path. –  Dennis Williamson Mar 6 '11 at 14:51
    
You are absolutely right; I was looking over the message and noticed it was saying it couldn't find #!/usr/bin/env, not just /usr/bin/env. –  Andrew M. Mar 6 '11 at 14:56
1  
Are you sure that's the exact contents of your git hook? I.e., cat .git/hooks/pre-commit? –  Andrew M. Mar 6 '11 at 14:59

1 Answer 1

up vote 0 down vote accepted

File was corrupted somehow from the time I'd copied it in to .git/hooks, a new file with same code fixed it. Many thanks to @Redmumba and @Dennis Williamson for letting me know I was looking in the wrong place.

share|improve this answer
    
Awesome! Please mark your answer as correct, just so the question will be closed off. :) –  Andrew M. Mar 6 '11 at 21:17

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.