diff options
author | Hariom Verma <hariom18599@gmail.com> | 2020-02-23 21:57:08 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-02-24 22:13:44 +0300 |
commit | 45f274fbb118cc4cb00640c30b4e3069d96755a0 (patch) | |
tree | c7ee0fa5735c2f20e57791117e278f98c342346f | |
parent | d0654dc308b0ba76dd8ed7bbb33c8d8f7aacd783 (diff) |
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 <johannes.schindelin@gmx.de>
Signed-off-by: Hariom Verma <hariom18599@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | worktree.c | 1 |
1 files changed, 1 insertions, 0 deletions
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, "/."); |