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
This commit is contained in:
@ -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",
|
||||
|
Reference in New Issue
Block a user