summaryrefslogtreecommitdiff
path: root/branch.h
diff options
context:
space:
mode:
authorKazuki Yamaguchi <k@rhe.jp>2016-03-27 14:37:14 (GMT)
committerJunio C Hamano <gitster@pobox.com>2016-04-04 19:57:22 (GMT)
commit70999e9ceca47e03b8900bfb310b2f804125811e (patch)
tree8a1b8017985cb7def44f282dfde91844102c8e45 /branch.h
parent2233066e778e32dfab0471ea2ad8d1c7a94b7e39 (diff)
downloadgit-70999e9ceca47e03b8900bfb310b2f804125811e.zip
git-70999e9ceca47e03b8900bfb310b2f804125811e.tar.gz
git-70999e9ceca47e03b8900bfb310b2f804125811e.tar.bz2
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.h7
1 files changed, 7 insertions, 0 deletions
diff --git a/branch.h b/branch.h
index 78ad438..d69163d 100644
--- a/branch.h
+++ b/branch.h
@@ -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