diff options
author | Junio C Hamano <gitster@pobox.com> | 2021-05-20 02:54:58 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2021-05-20 02:54:59 +0300 |
commit | 33be431c0c7284c1adf0fe49f7838dbc8aee6ea9 (patch) | |
tree | ce7b37182ebe1c89b0d9d4f5ced18e514e60c09d /notes-merge.c | |
parent | 2e2ed74be03993706d467e4b8e785afeb5f173d9 (diff) | |
parent | b548f0f1568f6b01e55ca69c24d3cb19489f92aa (diff) |
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 'notes-merge.c')
-rw-r--r-- | notes-merge.c | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/notes-merge.c b/notes-merge.c index 12e8472b65..46c1f7c7f1 100644 --- a/notes-merge.c +++ b/notes-merge.c @@ -695,13 +695,10 @@ int notes_merge_commit(struct notes_merge_options *o, strbuf_addch(&path, '/'); baselen = path.len; - while ((e = readdir(dir)) != NULL) { + while ((e = readdir_skip_dot_and_dotdot(dir)) != NULL) { struct stat st; struct object_id obj_oid, blob_oid; - if (is_dot_or_dotdot(e->d_name)) - continue; - if (get_oid_hex(e->d_name, &obj_oid)) { if (o->verbosity >= 3) printf("Skipping non-SHA1 entry '%s%s'\n", |