Sorry for sending a v10 so soon after v9 without really waiting for feedback, but as I started digging into https://lore.kernel.org/git/D4ZAELFWJMKN.S88LJ6YK31LZ@xxxxxxxxxxxxxx/ I realized that the root cause is in fetch and not remote add, so the solution belongs to this series. I'll leave my overall comments for v9 in here for clarity. v10: added a new patch (8/8) on top of v9 to handle HEAD in mirrored bare repositories, rest of the patches are unchanged v9: the two most notable changes are - the new patch 1/7 which address https://lore.kernel.org/git/Zw8IKyPkG0Hr6%2F5t@nand.local/, but see https://lore.kernel.org/git/D4ZAELFWJMKN.S88LJ6YK31LZ@xxxxxxxxxxxxxx/ - the refs_update_symref -> refs_update_symref_extended change in 2/7, reflecting on Phillip's comments (see https://lore.kernel.org/git/a7cb48e5-d8ba-44c1-9dbe-d1e8f8a63e3c@xxxxxxxxx/) Hopefully with 1/7 the series is ready to move back to seen :) Best, Bence Bence Ferdinandy (8): t/t5505-remote: set default branch to main 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 | 90 ++++++++++++ builtin/remote.c | 52 +++++-- refs.c | 41 +++++- refs.h | 8 +- refs/files-backend.c | 24 ++-- refs/reftable-backend.c | 6 +- t/t4207-log-decoration-colors.sh | 3 +- t/t5505-remote.sh | 83 ++++++++++- t/t5510-fetch.sh | 229 ++++++++++++++++--------------- 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 +++++++++ 17 files changed, 486 insertions(+), 154 deletions(-) -- 2.47.0.94.g8861098b6d