threads / discuss / 24708

Git thinks a failing command doesn't exist

Subject: Git thinks a failing command doesn't exist

## tl;dr

5 messages between Aug 11, 2010 and Aug 11, 2010.

replies: 4people: 2as markdown or json

Ævar Arnfjörð Bjarmason· Aug 11, 2010, 19:12 UTC · lore
Has this been noted before:
    $ git rebase --continue
    .: 986: Can't open /home/avar/g/git/.git/rebase-merge/author-script
    git: 'rebase' is not a git command. See 'git --help'.
    Did you mean this?
            rebase

Rebase failed, but the help mechanism seems to just test the exit code, or something similar.

Perhaps help_unknown_cmd could just check if the command it's suggesting == what it says doesn't exist, if so the command probably failed, but maybe there's a better solution.

Jeff King· Aug 11, 2010, 19:25 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Git thinks a failing command doesn't exist

On Wed, Aug 11, 2010 at 07:12:38PM +0000, Ævar Arnfjörð Bjarmason wrote:
Show 10 quoted lines
> Has this been noted before:
> 
>     $ git rebase --continue
>     .: 986: Can't open /home/avar/g/git/.git/rebase-merge/author-script
>     git: 'rebase' is not a git command. See 'git --help'.
>     Did you mean this?
>             rebase
> 
> Rebase failed, but the help mechanism seems to just test the exit
> code, or something similar.

Which git version and which platform? There is code in run-command to check for an exit code of 127 (which is what posix shells should produce for a missing command), and to set ENOENT in that case, which is what execv_dashed_external notices for a missing command.

So either your shell is producing that exit code for a different case, or git is broken.

-Peff
Ævar Arnfjörð Bjarmason· Aug 11, 2010, 19:45 UTC · re: Jeff King · lore

Re: Git thinks a failing command doesn't exist

On Wed, Aug 11, 2010 at 19:25, Jeff King <peff@peff.net> wrote:
Show 17 quoted lines
> On Wed, Aug 11, 2010 at 07:12:38PM +0000, Ævar Arnfjörð Bjarmason wrote:
>
>> Has this been noted before:
>>
>>     $ git rebase --continue
>>     .: 986: Can't open /home/avar/g/git/.git/rebase-merge/author-script
>>     git: 'rebase' is not a git command. See 'git --help'.
>>     Did you mean this?
>>             rebase
>>
>> Rebase failed, but the help mechanism seems to just test the exit
>> code, or something similar.
>
> Which git version and which platform? There is code in run-command to
> check for an exit code of 127 (which is what posix shells should produce
> for a missing command), and to set ENOENT in that case, which is what
> execv_dashed_external notices for a missing command.

It's 1.7.2.1.295.gdf931 on Debian testing. Which is pu as it was on midnight UTC (I build it from cron) + these patches (which shouldn't matter):

    # Monkeypatches
                  git cherry-pick 041bc904d2 # t/lib-git-svn.sh: use
$PERL_PATH for perl, not perl from $PATH
    git cherry-pick 855a1f8836 # commit: fix test broken by
jn/commit-no-change-wo-status
    git revert --no-edit 48e46574e6 # rebase -i: add exec command to
launch a shell command
> So either your shell is producing that exit code for a different case,
> or git is broken.
My shell is Debian /bin/dash 0.5.5.1-6.

Unfortunately the error with rebase was some one-off thing that I couldn't reproduce. I'm not even sure /what/ I did to make it happen.

Jeff King· Aug 11, 2010, 19:48 UTC · re: Ævar Arnfjörð Bjarmason · lore

Re: Git thinks a failing command doesn't exist

On Wed, Aug 11, 2010 at 07:45:14PM +0000, Ævar Arnfjörð Bjarmason wrote:
> > So either your shell is producing that exit code for a different case,
> > or git is broken.
> 
> My shell is Debian /bin/dash 0.5.5.1-6.
Hmm, I can't reproduce here, and I am also using dash as my shell.
> Unfortunately the error with rebase was some one-off thing that I
> couldn't reproduce. I'm not even sure /what/ I did to make it happen.

OK. The code is _supposed_ to work as you expected, so if it happens again, I guess try to reproduce and we'll go from there.

-Peff
Ævar Arnfjörð Bjarmason· Aug 11, 2010, 20:10 UTC · re: Jeff King · lore

Re: Git thinks a failing command doesn't exist

On Wed, Aug 11, 2010 at 19:48, Jeff King <peff@peff.net> wrote:
Show 14 quoted lines
> On Wed, Aug 11, 2010 at 07:45:14PM +0000, Ævar Arnfjörð Bjarmason wrote:
>
>> > So either your shell is producing that exit code for a different case,
>> > or git is broken.
>>
>> My shell is Debian /bin/dash 0.5.5.1-6.
>
> Hmm, I can't reproduce here, and I am also using dash as my shell.
>
>> Unfortunately the error with rebase was some one-off thing that I
>> couldn't reproduce. I'm not even sure /what/ I did to make it happen.
>
> OK. The code is _supposed_ to work as you expected, so if it happens
> again, I guess try to reproduce and we'll go from there.

git-rebase must have exited with a code of 127. I tried every exit code from 1 to 255, and 127 is the only one that does this:

$ head -n2 git-rebase #!/bin/sh exit 127

$ ./git rebase --continue git: 'rebase' is not a git command. See 'git --help'.

Did you mean this?
        rebase

← back to recent threads