Merge branch 'nd/untracked-cache'
Teach the index to optionally remember already seen untracked files to speed up "git status" in a working tree with tons of cruft. * nd/untracked-cache: (24 commits) git-status.txt: advertisement for untracked cache untracked cache: guard and disable on system changes mingw32: add uname() t7063: tests for untracked cache update-index: test the system before enabling untracked cache update-index: manually enable or disable untracked cache status: enable untracked cache untracked-cache: temporarily disable with $GIT_DISABLE_UNTRACKED_CACHE untracked cache: mark index dirty if untracked cache is updated untracked cache: print stats with $GIT_TRACE_UNTRACKED_STATS untracked cache: avoid racy timestamps read-cache.c: split racy stat test to a separate function untracked cache: invalidate at index addition or removal untracked cache: load from UNTR index extension untracked cache: save to an index extension ewah: add convenient wrapper ewah_serialize_strbuf() untracked cache: don't open non-existent .gitignore untracked cache: mark what dirs should be recursed/saved untracked cache: record/validate dir mtime and reuse cached output untracked cache: make a wrapper around {open,read,close}dir() ...
This commit is contained in:
6
cache.h
6
cache.h
@ -297,8 +297,11 @@ static inline unsigned int canon_mode(unsigned int mode)
|
||||
#define RESOLVE_UNDO_CHANGED (1 << 4)
|
||||
#define CACHE_TREE_CHANGED (1 << 5)
|
||||
#define SPLIT_INDEX_ORDERED (1 << 6)
|
||||
#define UNTRACKED_CHANGED (1 << 7)
|
||||
|
||||
struct split_index;
|
||||
struct untracked_cache;
|
||||
|
||||
struct index_state {
|
||||
struct cache_entry **cache;
|
||||
unsigned int version;
|
||||
@ -312,6 +315,7 @@ struct index_state {
|
||||
struct hashmap name_hash;
|
||||
struct hashmap dir_hash;
|
||||
unsigned char sha1[20];
|
||||
struct untracked_cache *untracked;
|
||||
};
|
||||
|
||||
extern struct index_state the_index;
|
||||
@ -563,6 +567,8 @@ extern void fill_stat_data(struct stat_data *sd, struct stat *st);
|
||||
* INODE_CHANGED, and DATA_CHANGED.
|
||||
*/
|
||||
extern int match_stat_data(const struct stat_data *sd, struct stat *st);
|
||||
extern int match_stat_data_racy(const struct index_state *istate,
|
||||
const struct stat_data *sd, struct stat *st);
|
||||
|
||||
extern void fill_stat_cache_info(struct cache_entry *ce, struct stat *st);
|
||||
|
||||
|
Reference in New Issue
Block a user