Merge branch 'jt/namespaced-ls-refs-fix'

Fix namespace support in protocol v2.

* jt/namespaced-ls-refs-fix:
  ls-refs: filter refs using namespace-stripped name
This commit is contained in:
Junio C Hamano 2019-02-05 14:26:15 -08:00
commit 9c96ab9872
2 changed files with 22 additions and 1 deletions

View File

@ -44,7 +44,7 @@ static int send_ref(const char *refname, const struct object_id *oid,
if (ref_is_hidden(refname_nons, refname))
return 0;
if (!ref_match(&data->prefixes, refname))
if (!ref_match(&data->prefixes, refname_nons))
return 0;
strbuf_addf(&refline, "%s %s", oid_to_hex(oid), refname_nons);

View File

@ -561,6 +561,27 @@ test_expect_success 'fetch with http:// using protocol v2' '
grep "git< version 2" log
'
test_expect_success 'fetch from namespaced repo respects namespaces' '
test_when_finished "rm -f log" &&
git init "$HTTPD_DOCUMENT_ROOT_PATH/nsrepo" &&
test_commit -C "$HTTPD_DOCUMENT_ROOT_PATH/nsrepo" one &&
test_commit -C "$HTTPD_DOCUMENT_ROOT_PATH/nsrepo" two &&
git -C "$HTTPD_DOCUMENT_ROOT_PATH/nsrepo" \
update-ref refs/namespaces/ns/refs/heads/master one &&
GIT_TRACE_PACKET="$(pwd)/log" git -C http_child -c protocol.version=2 \
fetch "$HTTPD_URL/smart_namespace/nsrepo" \
refs/heads/master:refs/heads/theirs &&
# Server responded using protocol v2
grep "fetch< version 2" log &&
git -C "$HTTPD_DOCUMENT_ROOT_PATH/nsrepo" rev-parse one >expect &&
git -C http_child rev-parse theirs >actual &&
test_cmp expect actual
'
test_expect_success 'push with http:// and a config of v2 does not request v2' '
test_when_finished "rm -f log" &&
# Till v2 for push is designed, make sure that if a client has