This continues the journey of getting rid of the_index at least in library code. The focus of part 4 is diff code. Since 'struct repository *' is passed around more (and even more in part 5), I take this opportunity to remove some the_repository references too. Besides some small conflicts on 'pu', like the previous part, it also breaks 'pu' because of API changes. The fix is trivial though, just prepend the_repository as the first argument for the broken function calls. After this and ~20 more patches in part5, the_index is gone from library code. Nguyễn Thái Ngọc Duy (21): archive.c: remove implicit dependency the_repository read-cache.c: remove 'const' from index_has_changes() combine-diff.c: remove implicit dependency on the_index diff.c: remove the_index dependency in textconv() functions grep.c: remove implicit dependency on the_index diff.c: remove implicit dependency on the_index read-cache.c: remove implicit dependency on the_index diff-lib.c: remove implicit dependency on the_index ll-merge.c: remove implicit dependency on the_index merge-blobs.c: remove implicit dependency on the_index merge.c: remove implicit dependency on the_index patch-ids.c: remove implicit dependency on the_index sha1-file.c: remove implicit dependency on the_index rerere.c: remove implicit dependency on the_index userdiff.c: remove implicit dependency on the_index line-range.c: remove implicit dependency on the_index submodule.c: remove implicit dependency on the_index tree-diff.c: remove implicit dependency on the_index ws.c: remove implicit dependency on the_index wt-status.c: remove implicit dependency on the_index wt-status.c: remove implicit dependency the_repository apply.c | 19 +-- archive-zip.c | 14 ++- archive.c | 2 +- blame.c | 27 +++-- builtin/am.c | 4 +- builtin/blame.c | 2 +- builtin/cat-file.c | 6 +- builtin/checkout.c | 3 +- builtin/commit.c | 4 +- builtin/diff.c | 2 +- builtin/difftool.c | 2 +- builtin/grep.c | 7 +- builtin/hash-object.c | 2 +- builtin/log.c | 9 +- builtin/merge-tree.c | 2 +- builtin/merge.c | 12 +- builtin/pull.c | 12 +- builtin/range-diff.c | 2 +- builtin/replace.c | 2 +- builtin/rerere.c | 6 +- builtin/reset.c | 1 + builtin/update-index.c | 2 +- cache.h | 14 ++- combine-diff.c | 32 ++--- diff-lib.c | 17 +-- diff-no-index.c | 9 +- diff.c | 259 +++++++++++++++++++++++------------------ diff.h | 19 ++- diffcore-break.c | 12 +- diffcore-delta.c | 12 +- diffcore-pickaxe.c | 8 +- diffcore-rename.c | 35 +++--- diffcore.h | 13 ++- grep.c | 34 +++--- grep.h | 10 +- line-log.c | 25 ++-- line-range.c | 22 ++-- line-range.h | 6 +- ll-merge.c | 17 +-- ll-merge.h | 5 +- merge-blobs.c | 16 ++- merge-blobs.h | 7 +- merge-recursive.c | 5 +- merge.c | 20 ++-- notes-merge.c | 9 +- patch-ids.c | 4 +- patch-ids.h | 3 +- read-cache.c | 33 +++--- ref-filter.c | 2 +- rerere.c | 121 ++++++++++--------- rerere.h | 9 +- revision.c | 8 +- sequencer.c | 16 +-- sha1-file.c | 50 ++++---- submodule.c | 28 +++-- submodule.h | 9 +- transport.c | 9 +- tree-diff.c | 2 +- userdiff.c | 5 +- userdiff.h | 3 +- ws.c | 5 +- wt-status.c | 88 ++++++++------ wt-status.h | 21 +++- 63 files changed, 682 insertions(+), 482 deletions(-) -- 2.19.0.rc0.337.ge906d732e7