Notable changes since v13: - As discussed in https://lore.kernel.org/git/xmqqed36btxm.fsf@gitster.g/ this iteration has dropped printing any warning during fetch and now only sets HEAD if it doesn't already exist, otherwise it doesn't do anything. - A new patch adds a new test case for testing the failure branch of remote set-head. This also allowed to clear up a bug in a later patch. I will start working on a follow up patch that will add configuration options to control how fetch sets HEAD or not. The current state should be fine for most people, except those who explicitly wish NOT to have remote/HEAD set. Other than that the current state is now hopefully mature enough to graduate (unless I made yet another mistake :)). Bence Ferdinandy (10): t/t5505-remote: set default branch to main t/t5505-remote: test failure of set-head refs: standardize output of refs_read_symbolic_ref refs: atomically record overwritten ref in update_symref remote set-head: refactor for readability remote set-head: better output for --auto refs: add TRANSACTION_CREATE_EXISTS error refs: add create_only option to refs_update_symref_extended fetch: set remote/HEAD if it does not exist fetch set_head: handle mirrored bare repositories builtin/fetch.c | 74 +++++++++++++++++++++ builtin/remote.c | 72 +++++++++++++++------ refs.c | 47 ++++++++++++-- refs.h | 19 +++++- refs/files-backend.c | 31 +++++---- refs/refs-internal.h | 5 ++ refs/reftable-backend.c | 14 ++-- t/t4207-log-decoration-colors.sh | 3 +- t/t5505-remote.sh | 107 +++++++++++++++++++++++++++++-- t/t5510-fetch.sh | 24 +++++++ t/t5512-ls-remote.sh | 2 + t/t5514-fetch-multiple.sh | 17 ++++- t/t5516-fetch-push.sh | 3 +- t/t5527-fetch-odd-refs.sh | 3 +- t/t7900-maintenance.sh | 3 +- t/t9210-scalar.sh | 5 +- t/t9211-scalar-clone.sh | 6 +- t/t9902-completion.sh | 65 +++++++++++++++++++ 18 files changed, 440 insertions(+), 60 deletions(-) -- 2.47.0.298.g52a96ec17b