Thanks, everyone, for your review. New in v2: - added restriction on fetching rename_src's blob, following Stolee's comment - folded oid_nr==0 check into promisor_remote_get_direct(), following Stolee's comment - used "mv server/b server/c", following Stolee's comment - made diff_add_if_missing() public function, following Junio's comment I didn't change the "continue" part that Stolee suggested [1]. [1] https://lore.kernel.org/git/xmqqlfng75cl.fsf@xxxxxxxxxxxxxxxxxxxxxx/ Jonathan Tan (2): promisor-remote: accept 0 as oid_nr in function diff: restrict when prefetching occurs builtin/index-pack.c | 5 ++-- diff.c | 49 +++++++++++++++++++++++------------ diffcore-rename.c | 37 +++++++++++++++++++++++++- diffcore.h | 10 ++++++- promisor-remote.c | 3 +++ promisor-remote.h | 8 ++++++ t/t4067-diff-partial-clone.sh | 48 ++++++++++++++++++++++++++++++++++ unpack-trees.c | 5 ++-- 8 files changed, 141 insertions(+), 24 deletions(-) -- 2.26.0.292.g33ef6b2f38-goog