On Mon, Jul 24, 2006 at 02:10:45PM +0200, Johannes Schindelin wrote: > @@ -264,6 +289,7 @@ int main(int argc, const char **argv, ch > if (!strncmp(cmd, "git-", 4)) { > cmd += 4; > argv[0] = cmd; > + handle_alias(&argc, &argv); > handle_internal_command(argc, argv, envp); > die("cannot handle %s internally", cmd); > } I believe this change is the source of the breakage in tests. GIT_DIR=foo git-init-db no longer works because handle_alias unconditionally calls setup_git_directory_gently(), which thinks that if GIT_DIR is set, it must exist. This can be fixed by giving precedence to the internal command over alias checking. This makes sense, anyway, since later in the function, we give precedence to internal commands in the "git init-db" form. Patch is below (wow, that +++ is kind of ugly!). -Peff +++ git: choose internal commands over aliases for git-* This is especially important because some commands (like init-db) don't require a working GIT_DIR, and alias expansion tries to look at it. It also matches the behavior of "git cmd". Signed-off-by: Jeff King <peff@xxxxxxxx> --- git.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/git.c b/git.c index 8d7c644..68ce826 100644 --- a/git.c +++ b/git.c @@ -289,8 +289,8 @@ int main(int argc, const char **argv, ch if (!strncmp(cmd, "git-", 4)) { cmd += 4; argv[0] = cmd; - handle_alias(&argc, &argv); handle_internal_command(argc, argv, envp); + handle_alias(&argc, &argv); die("cannot handle %s internally", cmd); } -- 1.4.2.rc1.gc470-dirty - : 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