Merge branch 'sl/clean-d-ignored-fix'
"git clean -d" used to clean directories that has ignored files, even though the command should not lose ignored ones without "-x". "git status --ignored" did not list ignored and untracked files without "-uall". These have been corrected. * sl/clean-d-ignored-fix: clean: teach clean -d to preserve ignored paths dir: expose cmp_name() and check_contains() dir: hide untracked contents of untracked dirs dir: recurse into untracked dirs for ignored files t7061: status --ignored should search untracked dirs t7300: clean -d should skip dirs with ignored files
This commit is contained in:
6
dir.h
6
dir.h
@ -151,7 +151,8 @@ struct dir_struct {
|
||||
DIR_NO_GITLINKS = 1<<3,
|
||||
DIR_COLLECT_IGNORED = 1<<4,
|
||||
DIR_SHOW_IGNORED_TOO = 1<<5,
|
||||
DIR_COLLECT_KILLED_ONLY = 1<<6
|
||||
DIR_COLLECT_KILLED_ONLY = 1<<6,
|
||||
DIR_KEEP_UNTRACKED_CONTENTS = 1<<7
|
||||
} flags;
|
||||
struct dir_entry **entries;
|
||||
struct dir_entry **ignored;
|
||||
@ -337,6 +338,9 @@ static inline int dir_path_match(const struct dir_entry *ent,
|
||||
has_trailing_dir);
|
||||
}
|
||||
|
||||
int cmp_dir_entry(const void *p1, const void *p2);
|
||||
int check_dir_entry_contains(const struct dir_entry *out, const struct dir_entry *in);
|
||||
|
||||
void untracked_cache_invalidate_path(struct index_state *, const char *);
|
||||
void untracked_cache_remove_from_index(struct index_state *, const char *);
|
||||
void untracked_cache_add_to_index(struct index_state *, const char *);
|
||||
|
Reference in New Issue
Block a user