diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-03-27 23:37:14 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-04-04 12:57:22 -0700 |
commit | 70999e9ceca47e03b8900bfb310b2f804125811e (patch) | |
tree | 8a1b8017985cb7def44f282dfde91844102c8e45 /branch.h | |
parent | 2233066e778e32dfab0471ea2ad8d1c7a94b7e39 (diff) | |
download | git-70999e9ceca47e03b8900bfb310b2f804125811e.tar.gz |
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>
Diffstat (limited to 'branch.h')
-rw-r--r-- | branch.h | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -60,4 +60,11 @@ extern int read_branch_desc(struct strbuf *, const char *branch_name); */ extern void die_if_checked_out(const char *branch); +/* + * Update all per-worktree HEADs pointing at the old ref to point the new ref. + * This will be used when renaming a branch. Returns 0 if successful, non-zero + * otherwise. + */ +extern int replace_each_worktree_head_symref(const char *oldref, const char *newref); + #endif |