Brandon Williams <bmwill@xxxxxxxxxx> writes: > 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'. Very nicely done (I only skimmed "dir.c" in the end result and didn't go through the changes with fine toothed comb, though). I would have done this without the first step and then instead had a final patch that only inserts a single #define NO_THE_INDEX_COMPATIBILITY_MACROS at the beginning of dir.c once everybody in dir.c loses the reference to all "cache" macros at the end, if I were doing this series, but it is a personal taste. The resulting dir.c does not even refer to the_index, which is very nice. Thanks. > 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(-)