diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-06-02 15:06:04 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-02 15:06:05 +0900 |
commit | f4fd99bf6e5c27265ee2a9ccb9c2495854f67acb (patch) | |
tree | 2fae59f74c523e7e58465b24aa343b4a90debc46 /dir.h | |
parent | d027b467fcb526433902b024a5d30844d9346e57 (diff) | |
parent | 6b1db43109ab3d4c92e61874cd149779c66016db (diff) | |
download | git-f4fd99bf6e5c27265ee2a9ccb9c2495854f67acb.tar.gz |
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
Diffstat (limited to 'dir.h')
-rw-r--r-- | dir.h | 6 |
1 files changed, 5 insertions, 1 deletions
@@ -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 *); |