From 45f274fbb118cc4cb00640c30b4e3069d96755a0 Mon Sep 17 00:00:00 2001 From: Hariom Verma Date: Sun, 23 Feb 2020 18:57:08 +0000 Subject: get_main_worktree(): allow it to be called in the Git directory When called in the Git directory of a non-bare repository, this function would not return the directory of the main worktree, but of the Git directory instead. The reason: when the Git directory is the current working directory, the absolute path of the common directory will be reported with a trailing `/.git/.`, which the code of `get_main_worktree()` does not handle correctly. Let's fix this. Helped-by: Johannes Schindelin Signed-off-by: Hariom Verma Signed-off-by: Junio C Hamano --- worktree.c | 1 + 1 file changed, 1 insertion(+) (limited to 'worktree.c') diff --git a/worktree.c b/worktree.c index 5b4793caa3..7c8cd21317 100644 --- a/worktree.c +++ b/worktree.c @@ -51,6 +51,7 @@ static struct worktree *get_main_worktree(void) struct strbuf worktree_path = STRBUF_INIT; strbuf_add_absolute_path(&worktree_path, get_git_common_dir()); + strbuf_strip_suffix(&worktree_path, "/."); if (!strbuf_strip_suffix(&worktree_path, "/.git")) strbuf_strip_suffix(&worktree_path, "/."); -- cgit v1.2.3