# [PATCH] set_worktree_head_symref(): fix error message

2 messages from 2016-04-08 to 2016-04-08. Participants: Kazuki Yamaguchi, Junio C Hamano.
Thread: https://gitlist.dev/t/41963

## Kazuki Yamaguchi, 2016-04-08 08:03

Subject: [PATCH] set_worktree_head_symref(): fix error message
Message-ID: <1460102587-22297-1-git-send-email-k@rhe.jp>
URL: https://gitlist.dev/e/1460102587-22297-1-git-send-email-k%40rhe.jp

```
Emit an informative error when failed to hold lock of HEAD.

2233066 (refs: add a new function set_worktree_head_symref) added
set_worktree_head_symref() but this is missing a call to
unable_to_lock_message() after hold_lock_file_for_update() fails, so it
emits an empty error message:

  % git branch -m oldname newname
  error:
  error: HEAD of working tree /path/to/wt is not updated
  fatal: Branch renamed to newname, but HEAD is not updated!

Thanks to Eric Sunshine for pointing this out.

Signed-off-by: Kazuki Yamaguchi <k@rhe.jp>
---
I'm sorry, this is my mistake in my previous patch which is already
merged to 'next':
- 2233066 (refs: add a new function set_worktree_head_symref)
- http://thread.gmane.org/gmane.comp.version-control.git/289413/focus=290008

This applies on top of ky/branch-m-worktree.

Thanks,

 refs/files-backend.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/refs/files-backend.c b/refs/files-backend.c
index ec237efec35d..ea78ce9d90f0 100644
--- a/refs/files-backend.c
+++ b/refs/files-backend.c
@@ -2898,7 +2898,6 @@ int set_worktree_head_symref(const char *gitdir, const char *target)
 {
 	static struct lock_file head_lock;
 	struct ref_lock *lock;
-	struct strbuf err = STRBUF_INIT;
 	struct strbuf head_path = STRBUF_INIT;
 	const char *head_rel;
 	int ret;
@@ -2906,6 +2905,8 @@ int set_worktree_head_symref(const char *gitdir, const char *target)
 	strbuf_addf(&head_path, "%s/HEAD", absolute_path(gitdir));
 	if (hold_lock_file_for_update(&head_lock, head_path.buf,
 				      LOCK_NO_DEREF) < 0) {
+		struct strbuf err = STRBUF_INIT;
+		unable_to_lock_message(head_path.buf, errno, &err);
 		error("%s", err.buf);
 		strbuf_release(&err);
 		strbuf_release(&head_path);
-- 
2.8.0.rc4.18.g70999e9.dirty

```

## Junio C Hamano, 2016-04-08 17:26

Subject: Re: [PATCH] set_worktree_head_symref(): fix error message
Message-ID: <xmqqvb3svwo1.fsf@gitster.mtv.corp.google.com>
URL: https://gitlist.dev/e/xmqqvb3svwo1.fsf%40gitster.mtv.corp.google.com
In-Reply-To: <1460102587-22297-1-git-send-email-k@rhe.jp>

```
Thanks.  Will queue.

```
