Junio C Hamano <gitster@xxxxxxxxx> writes: > Jurko Gospodnetić <jurko.gospodnetic@xxxxxxxx> writes: > >> Hi. >> >> I typed in "git BRANCH" by accident and got the error message: >> "fatal: cannot handle BRANCH internally". >> >> What does that mean? >> >> It is different from the usual "git: 'yada-yada' is not a >> git-command. See 'git --help'." message you get when you type in an >> incorrect command name. > > Just a guess; your git is installed on a case-challenged filesystem? Yeah, that must be it. This can happen on MacOS and Windows, I would imagine. -- >8 -- [PATCH] Fail on unknown command sensibly on case-challenged filesystems The callchain on a case-challenged filesystem when the user runs "git BRANCH" looks like this: - main(): git BRANCH - execv_dashed_external("BRANCH") - execvp("git-BRANCH") - main(): git-BRANCH - prefixcmp("git-BRANCH", "git-") - handle_internal_command() struct cmd_struct commands[] does not have "BRANCH" so it returns, instead of exiting. When the "git wrapper" execs "git-BRANCH", if your filesystem knows "branch" and "BRANCH" are different, execvp() would fail and we will see the familiar error message from the git.c::main(). However, if execvp() succeeds, we feed an unknown command name to handle_internal_command() and it triggers a different error message. Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx> --- git.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/git.c b/git.c index 37b1d76..c99e769 100644 --- a/git.c +++ b/git.c @@ -448,7 +448,7 @@ int main(int argc, const char **argv) cmd += 4; argv[0] = cmd; handle_internal_command(argc, argv); - die("cannot handle %s internally", cmd); + help_unknown_cmd(cmd); } /* Look for flags.. */ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html