diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-05-20 08:54:58 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-05-20 08:54:59 +0900 |
commit | 33be431c0c7284c1adf0fe49f7838dbc8aee6ea9 (patch) | |
tree | ce7b37182ebe1c89b0d9d4f5ced18e514e60c09d /builtin/ls-files.c | |
parent | Merge branch 'ab/perl-makefile-cleanup' (diff) | |
parent | dir: introduce readdir_skip_dot_and_dotdot() helper (diff) | |
download | tgif-33be431c0c7284c1adf0fe49f7838dbc8aee6ea9.tar.xz |
Merge branch 'en/dir-traversal'
"git clean" and "git ls-files -i" had confusion around working on
or showing ignored paths inside an ignored directory, which has
been corrected.
* en/dir-traversal:
dir: introduce readdir_skip_dot_and_dotdot() helper
dir: update stale description of treat_directory()
dir: traverse into untracked directories if they may have ignored subfiles
dir: avoid unnecessary traversal into ignored directory
t3001, t7300: add testcase showcasing missed directory traversal
t7300: add testcase showing unnecessary traversal into ignored directory
ls-files: error out on -i unless -o or -c are specified
dir: report number of visited directories and paths with trace2
dir: convert trace calls to trace2 equivalents
Diffstat (limited to 'builtin/ls-files.c')
-rw-r--r-- | builtin/ls-files.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/builtin/ls-files.c b/builtin/ls-files.c index 844c7f4e0e..45cc3b23dd 100644 --- a/builtin/ls-files.c +++ b/builtin/ls-files.c @@ -752,6 +752,9 @@ int cmd_ls_files(int argc, const char **argv, const char *cmd_prefix) if (pathspec.nr && error_unmatch) ps_matched = xcalloc(pathspec.nr, 1); + if ((dir.flags & DIR_SHOW_IGNORED) && !show_others && !show_cached) + die("ls-files -i must be used with either -o or -c"); + if ((dir.flags & DIR_SHOW_IGNORED) && !exc_given) die("ls-files --ignored needs some exclude pattern"); |