• Jonathan Tan's avatar
    unpack-trees: batch fetching of missing blobs · c0c578b3
    Jonathan Tan authored
    When running checkout, first prefetch all blobs that are to be updated
    but are missing. This means that only one pack is downloaded during such
    operations, instead of one per missing blob.
    
    This operates only on the blob level - if a repository has a missing
    tree, they are still fetched one at a time.
    
    This does not use the delayed checkout mechanism introduced in commit
    2841e8f8 ("convert: add "status=delayed" to filter process protocol",
    2017-06-30) due to significant conceptual differences - in particular,
    for partial clones, we already know what needs to be fetched based on
    the contents of the local repo alone, whereas for status=delayed, it is
    the filter process that tells us what needs to be checked in the end.
    Signed-off-by: default avatarJonathan Tan <jonathantanmy@google.com>
    Signed-off-by: default avatarJeff Hostetler <jeffhost@microsoft.com>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    c0c578b3
fetch-object.c 1.19 KB