mbox series

[v14,00/10] set-head/fetch remote/HEAD updates

Message ID 20241121225757.3877852-1-bence@ferdinandy.com (mailing list archive)
Headers show
Series set-head/fetch remote/HEAD updates | expand

Message

Bence Ferdinandy Nov. 21, 2024, 10:55 p.m. UTC
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(-)