branch -m: update all per-worktree HEADs
authorKazuki Yamaguchi <k@rhe.jp>
Sun, 27 Mar 2016 14:37:14 +0000 (23:37 +0900)
committerJunio C Hamano <gitster@pobox.com>
Mon, 4 Apr 2016 19:57:22 +0000 (12:57 -0700)
commit70999e9ceca47e03b8900bfb310b2f804125811e
tree8a1b8017985cb7def44f282dfde91844102c8e45
parent2233066e778e32dfab0471ea2ad8d1c7a94b7e39
branch -m: update all per-worktree HEADs

When renaming a branch, currently only the HEAD of current working tree
is updated, but it must update HEADs of all working trees which point at
the old branch.

This is the current behavior, /path/to/wt's HEAD is not updated:

  % git worktree list
  /path/to     2c3c5f2 [master]
  /path/to/wt  2c3c5f2 [oldname]
  % git branch -m master master2
  % git worktree list
  /path/to     2c3c5f2 [master2]
  /path/to/wt  2c3c5f2 [oldname]
  % git branch -m oldname newname
  % git worktree list
  /path/to     2c3c5f2 [master2]
  /path/to/wt  0000000 [oldname]

This patch fixes this issue by updating all relevant worktree HEADs
when renaming a branch.

Signed-off-by: Kazuki Yamaguchi <k@rhe.jp>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
branch.c
branch.h
builtin/branch.c
t/t3200-branch.sh