git potty: restore environments after alias expansion
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sun, 8 Jun 2014 09:37:10 +0000 (16:37 +0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Jun 2014 19:00:53 +0000 (12:00 -0700)
commitc0562611c525bb3c564b79c345fc7e4f9e799e54
treebb3e755cde8b269e23f0db2cdb4cafa63deb9fc3
parente156455ea49124c140a67623f22a393db62d5d98
git potty: restore environments after alias expansion

Commit 4ad8332 (t0001: test git init when run via an alias -
2010-11-26) noted breakages when running init via alias. The problem
is for alias to be used, $GIT_DIR must be searched, but 'init' and
'clone' are not happy with that. So we start a new process like an
external command, with clean environment in this case. Env variables
that are set by command line (e.g. "git --git-dir=.. ") are kept.

This should also fix autocorrecting a command typo to "init" because
it's the same problem: aliases are read, then "init" is unhappy with
$GIT_DIR already set up because of that.

Reminded-by: David Turner <dturner@twopensource.com>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git.c
t/t0001-init.sh