promisor-remote: lazy-fetch objects in subprocess
Teach Git to lazy-fetch missing objects in a subprocess instead of doing it in-process. This allows any fatal errors that occur during the fetch to be isolated and converted into an error return value, instead of causing the current command being run to terminate. Signed-off-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:

committed by
Junio C Hamano

parent
5c3b801dab
commit
7ca3c0ac37
@ -20,7 +20,7 @@ test_expect_success 'git show batches blobs' '
|
||||
# Ensure that there is exactly 1 negotiation by checking that there is
|
||||
# only 1 "done" line sent. ("done" marks the end of negotiation.)
|
||||
GIT_TRACE_PACKET="$(pwd)/trace" git -C client show HEAD &&
|
||||
grep "git> done" trace >done_lines &&
|
||||
grep "fetch> done" trace >done_lines &&
|
||||
test_line_count = 1 done_lines
|
||||
'
|
||||
|
||||
@ -44,7 +44,7 @@ test_expect_success 'diff batches blobs' '
|
||||
# Ensure that there is exactly 1 negotiation by checking that there is
|
||||
# only 1 "done" line sent. ("done" marks the end of negotiation.)
|
||||
GIT_TRACE_PACKET="$(pwd)/trace" git -C client diff HEAD^ HEAD &&
|
||||
grep "git> done" trace >done_lines &&
|
||||
grep "fetch> done" trace >done_lines &&
|
||||
test_line_count = 1 done_lines
|
||||
'
|
||||
|
||||
@ -127,7 +127,7 @@ test_expect_success 'diff with rename detection batches blobs' '
|
||||
# only 1 "done" line sent. ("done" marks the end of negotiation.)
|
||||
GIT_TRACE_PACKET="$(pwd)/trace" git -C client diff --raw -M HEAD^ HEAD >out &&
|
||||
grep ":100644 100644.*R[0-9][0-9][0-9].*b.*c" out &&
|
||||
grep "git> done" trace >done_lines &&
|
||||
grep "fetch> done" trace >done_lines &&
|
||||
test_line_count = 1 done_lines
|
||||
'
|
||||
|
||||
@ -175,7 +175,7 @@ test_expect_success 'diff --break-rewrites fetches only if necessary, and batche
|
||||
# by checking that there is only 1 "done" line sent. ("done" marks the
|
||||
# end of negotiation.)
|
||||
GIT_TRACE_PACKET="$(pwd)/trace" git -C client diff --break-rewrites --raw -M HEAD^ HEAD &&
|
||||
grep "git> done" trace >done_lines &&
|
||||
grep "fetch> done" trace >done_lines &&
|
||||
test_line_count = 1 done_lines
|
||||
'
|
||||
|
||||
|
Reference in New Issue
Block a user