Jonathan Tan <jonathantanmy@xxxxxxxxxx> writes: > Ah...that makes sense. Besides the accumulating of prefetch targets > (which makes deduplication more necessary - I might make a > "sort_and_uniq" function on oid_array that updates the oid_array > in-place), looking at the code, it's not only diffcore_break() which > might need prefetching, but diffcore_skip_stat_unmatch() too (not to > speak of the functions that come after diffcore_rename()). The least > brittle way is probably to have diff_populate_filespec() do the > prefetching. I'll take a further look. It might be a losing battle, unless we can somehow cleanly have a two pass approach where we ask various codepaths "enumerate blobs that you think you would need prefetching in this oid list" before letting any of them actually look at blobs and perform their main tasks, do a single prefetch and then let the existing age-old code call the diffcore transformations as if there is no need for it to worry about prefetching ;-) Thanks.