‘git fetch’ (without ‘--update-head-ok’), ‘git receive-pack’, and ‘git branch -M’ protect the currently checked out branch from being accidentally updated. However, the code for these checks predates ‘git worktree’. Improve it to protect branches checked out in all worktrees, not just the current one. Anders Kaseorg (8): fetch: lowercase error messages receive-pack: lowercase error messages branch: lowercase error messages worktree: simplify find_shared_symref() memory ownership model fetch: protect branches checked out in all worktrees receive-pack: clean dead code from update_worktree() receive-pack: protect current branch for bare repository worktree branch: protect branches checked out in all worktrees branch.c | 45 +++++++----- builtin/branch.c | 7 +- builtin/fetch.c | 119 +++++++++++++++++--------------- builtin/notes.c | 6 +- builtin/receive-pack.c | 92 +++++++++++++----------- t/t2018-checkout-branch.sh | 2 +- t/t3200-branch.sh | 11 ++- t/t5504-fetch-receive-strict.sh | 2 +- t/t5516-fetch-push.sh | 32 +++++++++ worktree.c | 8 +-- worktree.h | 5 +- 11 files changed, 198 insertions(+), 131 deletions(-) -- 2.34.1