threads / discuss / 28838

aliases causing “Permission denied” error in git v1.7

Subject: aliases causing “Permission denied” error in git v1.7

## tl;dr

3 messages between Nov 4, 2011 and Nov 5, 2011.

replies: 2people: 2as markdown or json

Алексей Данченков· Nov 4, 2011, 08:09 UTC · lore
Hi!

$ git co -b newbranch $ git co oldbranch

results in "fatal: cannot exec 'git-co': Permission denied" error.
In the same time, things like

$ git checkout -b newbranch $ git checkout oldbranch

and

$ sudo git co -b newbranch $ sudo git co oldbranch

work as expected. Ownership rights for the .git die are set for the user and 0755/0644 are the mode for .git dir/subdir/files. There are no git-co script anywhere in the system (as it is an alias to git-checkout, which resides in /usr/libexec/git-core).

Aliases are defined in .gitconfig of the home dir:

[alias] co = checkout

There is no difference in git config for root or normal user.

Things work well as expected when I install git v1.6. Going back to 1.7 gives me the same error.

What am I missing?
---
Gentoo / kernel v3.0.6 / git v1.7.3.4
Jeff King· Nov 4, 2011, 20:34 UTC · re: Алексей Данченков · lore

Re: aliases causing “Permission denied” error in git v1.7

On Fri, Nov 04, 2011 at 12:09:07PM +0400, Алексей Данченков wrote:
> $ git co -b newbranch
> $ git co oldbranch
> 
> results in "fatal: cannot exec 'git-co': Permission denied" error.

Git will try commands in your PATH before aliases. So you are running into a permissions problem with a "git-co" in your PATH.

Or more likely, there is an inaccessible directory of your PATH (and we get the same error code from execve whether it is the directory or the file itself which lacks permission). Try "git foobar" and I suspect you will see the same thing (it doesn't matter that you have no foobar alias; we never get past the "try to exec it" stage).

If you are on Linux, try:
  strace -f -e execve git foobar

to see the the problematic entry that is returning EACCES. Or look through your $PATH manually.

-Peff
Алексей Данченков· Nov 5, 2011, 11:51 UTC · lore

Re: aliases causing “Permission denied” error in git v1.7

Thank you very much, Jeff and Junio!

Not only I discovered more than one directory mentioned in the $PATH, but missing, but also learned a lot, including the strace tool.

Cheers, Alexei
2011/11/5 Junio C Hamano <gitster@pobox.com>:
Show 15 quoted lines
> Jeff King <peff@peff.net> writes:
>
> I do not know why my response is not showing up in the list archive, but
> the complaint was that "git co" works for him and "sudo git co" does not.
>
> I suspect that Alexsey will see differences between these:
>
>    $ sh -c 'echo $PATH $HOME'
>    $ sudo sh -c 'echo $PATH $HOME'
>
> Most likely, the latter would say /root/bin and /root; if an element in
> the $PATH is unreadable, git would say "cannot exec 'git-co': Permission denied".
>
>
>

← back to recent threads