fetch: do not list refs if fetching only hashes
If only hash literals are given on a "git fetch" command-line, tag following is not requested, and the fetch is done using protocol v2, a list of refs is not required from the remote. Therefore, optimize by invoking transport_get_remote_refs() only if we need the refs. 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
6ab4055775
commit
e70a3030e7
@ -381,6 +381,21 @@ test_expect_success 'using fetch command in remote-curl updates refs' '
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'fetch by SHA-1 without tag following' '
|
||||
SERVER="$HTTPD_DOCUMENT_ROOT_PATH/server" &&
|
||||
rm -rf "$SERVER" client &&
|
||||
|
||||
git init "$SERVER" &&
|
||||
test_commit -C "$SERVER" foo &&
|
||||
|
||||
git clone $HTTPD_URL/smart/server client &&
|
||||
|
||||
test_commit -C "$SERVER" bar &&
|
||||
git -C "$SERVER" rev-parse bar >bar_hash &&
|
||||
git -C client -c protocol.version=0 fetch \
|
||||
--no-tags origin $(cat bar_hash)
|
||||
'
|
||||
|
||||
test_expect_success 'GIT_REDACT_COOKIES redacts cookies' '
|
||||
rm -rf clone &&
|
||||
echo "Set-Cookie: Foo=1" >cookies &&
|
||||
|
Reference in New Issue
Block a user