One of the things brought up on the list in the past few days has been migrating away from using the index compatibility macros. One of the issues brought up in that thread was how simply doing that conversion doesn't eliminate the reliance on global state (specifically the_index). If one day we want to have a 'repository object' passed around then we first need to convert different subsystems to be prepared to handle that. This series provides a first step, converting the code in dir.c to take a 'struct index_state' and using that instead of implicitly using 'the_index'. Brandon Williams (14): dir: stop using the index compatibility macros dir: convert read_skip_worktree_file_from_index to take an index dir: convert directory_exists_in_index to take index dir: convert get_dtype to take index dir: convert dir_add* to take an index dir: convert last_exclude_matching_from_list to take an index dir: convert is_excluded_from_list to take an index dir: convert add_excludes to take an index dir: convert prep_exclude to take an index dir: convert is_excluded to take an index dir: convert open_cached_dir to take an index dir: convert read_directory_recursive to take an index dir: convert read_directory to take an index dir: convert fill_directory to take an index builtin/add.c | 7 +- builtin/check-ignore.c | 3 +- builtin/clean.c | 4 +- builtin/grep.c | 2 +- builtin/ls-files.c | 4 +- dir.c | 200 ++++++++++++++++++++++++++++--------------------- dir.h | 27 +++++-- unpack-trees.c | 10 +-- wt-status.c | 2 +- 9 files changed, 151 insertions(+), 108 deletions(-) -- 2.13.0.rc1.294.g07d810a77f-goog