On Fri, Jun 15, 2018 at 10:41 PM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: > This is the beginning of the end of the_index. The problem with > the_index is it lets library code anywhere access it freely. This is > not good because from high level you may not realize that the_index is > being used while you don't want to touch index at all, or you want to > use a different index instead. > > This is a long series, 86 patches [1], so I'm going to split and > submit it in 15-20 patches at a time. The first two parts are trivial > though and could be safely fast tracked if needed. You post this small little patch about unpack-trees.c, mentioning you don't know if it's even correct, and bait me into reviewing it and then spring on me that it's actually nearly 100 patches that need review... Very sneaky. ;-) > This is the first part, which kills the use of index compat macros > outside builtin/ and expose the_index in all library code. Later on we > will ban the_index from one file each time until it's gone for good. > > "struct index_state *" will be passed from builtin/ through the call > chain to the function that needs it. In some cases, "struct > repository *" will be passed instead when the whole operation spans > more than just the index. By the end, the_index becomes part of > "index compat macros" and cannot be used outside builtin/ > > Part one is mechanical conversion with the help of coccinelle. The > only real patches are the first and the last one. Thanks for the nice division. I read through all 15 patches, though I looked at the first and the last a bit closer. I'm not familiar with coccinelle yet, but it at least looked relatively straightforward; would be good to have someone else double check that patch. Other than that, the changes look good to me. Thanks for working on this!