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 <mhcox@xxxxxxxxxxxxxxxxxxx> Signed-off-by: Jonathan Nieder <jrnieder@xxxxxxxxx> --- 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 -- 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