Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: >> For one thing, I want to move read_cache() out of run_diff_files() and >> run_diff_index() to their callers, so that the caller can use a >> handcrafted active_cache[] that is somewhat different from what >> read_cache() originally read. > > I don't understand. Would it not be easier to "return active_nr" in > read_cache_from(path) _also_ when active_cache is set? Or alternatively > check if active_alloc is set? I do not understand your questions. What I am getting at is that in the current code (without your patch), run_diff_files() is about diff between $GIT_DIR/index and working tree. I want to make it diff between active_cache[] and working tree. The caller still can use read_cache() or read_cache_from(path) to populate active_cache[], but it is not limited to. It can do other index manipulations before calling run_diff_files(). For example, it can do read_tree() to populate active_cache[] before calling run_diff_files() and/or run_diff_index(). Or maybe it can run multi-tree read_tree() to populate active_cache[], internally merge them without writing the merge results out, and then call run_diff_files() to show "here is what would happen if you were to run a merge now", all inside active_cache[]. Of course such a caller needs to be careful not to write active_cache[] out when it shouldn't, but that goes without saying. git-diff-index already mucks with active_cache[] with full intention of not writing it out. Please see near the tip of 'pu', around here, for much simpler usage pattern I had in mind: commit 910d798768989d8fe581c2afcfd501307db81b10 Author: Junio C Hamano <junkio@xxxxxxx> git-status: use in-core --refresh in a read-only repository. commit c5cc9b14a0f36d7fab66b3152f0ebcb442674bfc Author: Junio C Hamano <junkio@xxxxxxx> git-runstatus --refresh commit b4e1e4a787d3771f617182b3344dcdd9224bd0cb Author: Junio C Hamano <junkio@xxxxxxx> run_diff_{files,index}(): update calling convention. - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html