From: Jonathan Nieder Date: Fri, 19 Mar 2010 23:40:34 GMT Subject: [PATCH] Makefile: Fix CDPATH problem Message-ID: <20100319234033.GA18035@progeny.tock> In-Reply-To: CDPATH takes scripts to unexpected places. For example, with a CDPATH including a blt directory: make -C templates DESTDIR='' install make[1]: Entering directory `/users/e477610/exptool/src/git-1.7.0.2/templates' install -d -m 755 '/home/e477610/exptool/share/git-core/templates' (cd blt && gtar cf - .) | \ (cd '/home/e477610/exptool/share/git-core/templates' && umask 022 && gtar xof -) gtar: This does not look like a tar archive The CDPATH mechanism does not implicitly add "." at the beginning of CDPATH, which is the most irritating part. Most git scripts already protect against use of CDPATH through git-sh-setup, but the Makefile doesn’t. Reported-by: Michael Cox Signed-off-by: Jonathan Nieder --- I wouldn’t have guessed that. Thanks, Junio. Michael Cox wrote: > That fixed the build problem. Thank you! Here’s a patch to prevent it from happening again. Makefile | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/Makefile b/Makefile index 4387d42..c1f4161 100644 --- a/Makefile +++ b/Makefile @@ -317,6 +317,12 @@ SCRIPT_PYTHON = SCRIPT_SH = TEST_PROGRAMS = +# Having this variable in your environment would break scripts because +# you would cause "cd" to be taken to unexpected places. If you +# like CDPATH, define it for your interactive shell sessions without +# exporting it. +unexport CDPATH + SCRIPT_SH += git-am.sh SCRIPT_SH += git-bisect.sh SCRIPT_SH += git-difftool--helper.sh -- 1.7.0.2.468.g1637