[PATCH v3 1/3] get_main_worktree(): allow it to be called in the Git directory
- From
- Hariom Verma via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Feb 23, 2020, 18:57 UTC
- Message-ID
- <8718facbc951614f19407afa6ca8d6110507483d.1582484231.git.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.535.v3.git.1582484231.gitgitgadget@gmail.com>
From: Hariom Verma <hariom18599@gmail.com>
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 <johannes.schindelin@gmx.de> Signed-off-by: Hariom Verma <hariom18599@gmail.com> --- worktree.c | 1 + 1 file changed, 1 insertion(+)
diff --git a/worktree.c b/worktree.c index 5b4793caa34..7c8cd213171 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, "/.");
-- gitgitgadget