Subject: [PATCH] Test case for a problem with git add -u from subdirectory

From: Pekka Kaitaniemi <[email-masked]>
Date: Wed, 20 Feb 2008 16:32:15 +0200

Manual page for "git-add -u" says:
Update only files that git already knows about. This is similar to
what "git commit -a" does in preparation for making a commit, except
that the update is limited to paths specified on the command line. If
no paths are specified, all tracked files are updated.

The key sentence being: "If no paths are specified, all tracked files
are updated." If one modifies a file in subdir1, then goes to subdir2
and performs "git add -u" the modified file in subdir1 is not added to
the index. This test case demonstrates the problem.

Signed-off-by: Pekka Kaitaniemi <[email-masked]>
---

I found a possible problem in "git add -u" command without any
paths. Modified files located in a different subdirectory are not
added to the index even though the documentation says that in this
case all tracked files should be. Maybe this is caused by a bug in
"git add"? Or is the problem in the documentation?

In any case, this patch contains a test case that demonstrates the
problem.

 t/t2200-add-update.sh |   16 ++++++++++++++++
 1 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/t/t2200-add-update.sh b/t/t2200-add-update.sh
index 24f892f..5815ec5 100755
--- a/t/t2200-add-update.sh
+++ b/t/t2200-add-update.sh
@@ -80,6 +80,22 @@ test_expect_success 'change gets noticed' '
 
 '
 
+test_expect_success 'update from a different subdirectory' '
+	(
+		cd dir1 &&
+		echo addmore >sub2 &&
+                cd ../dir2 &&
+                git add -u
+	)
+
+'
+
+test_expect_success 'change gets noticed' '
+
+	test "$(git diff-files --name-status dir1)" = ""
+
+'
+
 test_expect_success 'replace a file with a symlink' '
 
 	rm foo &&
-- 
1.5.4.2