ls-files: fix broken --no-empty-directory
authorJeff King <peff@peff.net>
Sun, 8 Mar 2009 01:27:22 +0000 (20:27 -0500)
committerJunio C Hamano <gitster@pobox.com>
Sun, 8 Mar 2009 03:54:57 +0000 (19:54 -0800)
Commit ce8e880 converted ls-files to use parseopt; the
--no-empty-directory option was converted as an
OPT_BIT for "empty-directory" to set the
DIR_HIDE_EMPTY_DIRECTORY flag. However, that makes it do the
opposite of what it should: --empty-directory would hide,
but --no-empty-directory would turn off hiding.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-ls-files.c
t/t3000-ls-files-others.sh

index 1742c0f80d0167b84f1615fb8c6c93ad87e95938..437c366c9e7875aa5003419f1eb03c600b1a1f6f 100644 (file)
@@ -454,8 +454,8 @@ int cmd_ls_files(int argc, const char **argv, const char *prefix)
                OPT_BIT(0, "directory", &dir.flags,
                        "show 'other' directories' name only",
                        DIR_SHOW_OTHER_DIRECTORIES),
-               OPT_BIT(0, "empty-directory", &dir.flags,
-                       "list empty directories",
+               OPT_BIT(0, "no-empty-directory", &dir.flags,
+                       "don't show empty directories",
                        DIR_HIDE_EMPTY_DIRECTORIES),
                OPT_BOOLEAN('u', "unmerged", &show_unmerged,
                        "show unmerged files in the output"),
index 36eee0f8ae377e130bdcc20ad882261a83764e38..379d963ceafd64fa989fdfd1bba4e420e479bbf8 100755 (executable)
@@ -13,12 +13,13 @@ filesystem.
     path2/file2 - a file in a directory
     path3-junk  - a file to confuse things
     path3/file3 - a file in a directory
+    path4       - an empty directory
 '
 . ./test-lib.sh
 
 date >path0
 ln -s xyzzy path1
-mkdir path2 path3
+mkdir path2 path3 path4
 date >path2/file2
 date >path2-junk
 date >path3/file3
@@ -28,6 +29,7 @@ git update-index --add path3-junk path3/file3
 cat >expected1 <<EOF
 expected1
 expected2
+expected3
 output
 path0
 path1
@@ -35,6 +37,8 @@ path2-junk
 path2/file2
 EOF
 sed -e 's|path2/file2|path2/|' <expected1 >expected2
+cat <expected2 >expected3
+echo path4/ >>expected2
 
 test_expect_success \
     'git ls-files --others to show output.' \
@@ -53,4 +57,12 @@ test_expect_success \
     'git ls-files --others --directory should not get confused.' \
     'test_cmp expected2 output'
 
+test_expect_success \
+    'git ls-files --others --directory --no-empty-directory to show output.' \
+    'git ls-files --others --directory --no-empty-directory >output'
+
+test_expect_success \
+    '--no-empty-directory hides empty directory' \
+    'test_cmp expected3 output'
+
 test_done