diff options
author | Kazuki Yamaguchi <k@rhe.jp> | 2016-03-27 23:37:13 +0900 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2016-04-04 12:57:21 -0700 |
commit | 2233066e778e32dfab0471ea2ad8d1c7a94b7e39 (patch) | |
tree | 49a3691576048fde90f5f39d2a7e3cc91081b835 /refs.h | |
parent | 56331f8727b0c2e7dc713b728eaf1e5843422cb7 (diff) | |
download | git-2233066e778e32dfab0471ea2ad8d1c7a94b7e39.tar.gz |
refs: add a new function set_worktree_head_symref
Add a new function set_worktree_head_symref, to update HEAD symref for
the specified worktree.
To update HEAD of a linked working tree,
create_symref("worktrees/$work_tree/HEAD", "refs/heads/$branch", msg)
could be used. However when it comes to updating HEAD of the main
working tree, it is unusable because it uses $GIT_DIR for
worktree-specific symrefs (HEAD).
The new function takes git_dir (real directory) as an argument, and
updates HEAD of the working tree. This function will be used when
renaming a branch.
Signed-off-by: Kazuki Yamaguchi <k@rhe.jp>
Acked-by: David Turner <dturner@twopensource.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.h')
-rw-r--r-- | refs.h | 9 |
1 files changed, 9 insertions, 0 deletions
@@ -306,6 +306,15 @@ extern int rename_ref(const char *oldref, const char *newref, const char *logmsg extern int create_symref(const char *refname, const char *target, const char *logmsg); +/* + * Update HEAD of the specified gitdir. + * Similar to create_symref("relative-git-dir/HEAD", target, NULL), but + * this can update the main working tree's HEAD regardless of where + * $GIT_DIR points to. + * Return 0 if successful, non-zero otherwise. + * */ +extern int set_worktree_head_symref(const char *gitdir, const char *target); + enum action_on_err { UPDATE_REFS_MSG_ON_ERR, UPDATE_REFS_DIE_ON_ERR, |