Subject: Re: rc4 - make quick-install-doc is broken

From: René Scharfe <[email-masked]>
Date: Sat, 04 Aug 2007 22:19:05 +0200

Mark Levedahl schrieb:
> git>git bisect good
> 6490a3383f1d0d96c122069e510ef1af1d019fbb is first bad commit

I've started a bisect run myself and ended up at a different commit,
viz. e90fdc39b6903502192b2dd11e5503cea721a1ad ("Clean up work-tree
handling").  Hmm.  I guess this candidate has a greater chance of
actually being the culprit than yours. ;-)

I can't offer a fix, but I think I've captured install-doc-quick.sh's
problem in a test script (see below).  It fails with e90fdc3 (and
master) but succeeds with e90fdc3^.

Apparently checkout-index (and ls-files, but this is not used by the
install script) can now be confused by running it from inside an
untracked directory.

Johannes, does this help you in finding out what's going on here?

René

diff --git a/dev/null b/t/t1502-untracked.sh
new file mode 100755
index 0000000..3fbdb02
--- /dev/null
+++ b/t/t1502-untracked.sh
@@ -0,0 +1,36 @@
+#!/bin/sh
+
+test_description='accessing the index from an untracked directory'
+. ./test-lib.sh
+
+pwd=$(pwd)
+GIT_DIR=$pwd/.git
+export GIT_DIR
+
+test_expect_success 'setup' '
+	git init &&
+	echo some file content >some_file &&
+	git add some_file &&
+	git commit -m "added a file" some_file &&
+	mkdir untracked
+'
+
+test_expect_success 'test read-tree from an untracked directory' '
+	(                GIT_INDEX_FILE=$pwd/idx-a git read-tree HEAD) &&
+	(cd untracked && GIT_INDEX_FILE=$pwd/idx-b git read-tree HEAD) &&
+	git diff --binary idx-a idx-b
+'
+
+test_expect_success 'test checkout-index from an untracked directory' '
+	(                git checkout-index -a --prefix=$pwd/a/) &&
+	(cd untracked && git checkout-index -a --prefix=$pwd/b/) &&
+	git diff a/ b/
+'
+
+test_expect_success 'test ls-files from an untracked directory' '
+	(                git ls-files) >ls-files-a &&
+	(cd untracked && git ls-files) >ls-files-b &&
+	git diff ls-files-a ls-files-b
+'
+
+test_done