Thanks everyone for your comments. Changes from v1: - Split into patches. Patch 1 has the server-side changes, and patch 2 is a preparatory patch that just updates the API, so that reviewers can more clearly see the difference in logic in patch 3. - Updated commit messsage. - Updated test to use "-c init.defaultBranch" instead of "-c init.defaultbranch" (capitalization). Jonathan Tan (3): ls-refs: report unborn targets of symrefs connect, transport: add no-op arg for future patch clone: respect remote unborn HEAD Documentation/config/init.txt | 2 +- Documentation/technical/protocol-v2.txt | 10 ++++- builtin/clone.c | 19 +++++++-- builtin/fetch-pack.c | 3 +- builtin/fetch.c | 2 +- builtin/ls-remote.c | 2 +- builtin/remote.c | 2 +- connect.c | 29 +++++++++++-- ls-refs.c | 54 +++++++++++++++++++++++-- ls-refs.h | 1 + remote.h | 3 +- serve.c | 2 +- t/t5606-clone-options.sh | 7 ++-- t/t5702-protocol-v2.sh | 17 ++++++++ transport-helper.c | 7 +++- transport-internal.h | 13 +++--- transport.c | 29 ++++++++----- transport.h | 7 +++- 18 files changed, 166 insertions(+), 43 deletions(-) -- 2.29.2.684.gfbc64c5ab5-goog