Subject: Re: [Bug] git rev-parse --git-common-dir executed from a sub dir of the main worktree is wrong

From: Junio C Hamano <[email-masked]>
Date: Mon, 28 Mar 2016 12:57:52 -0700

Mike Rappazzo <[email-masked]> writes:

> I found a case where it seems that the result of `git rev-parse
> --git-common-dir` is incorrect.  If you execute the command from
> within a subdirectory in the main worktree, it returns the path from
> the root of the worktree to the current dir + "/.git".  (As a
> refresher, running this command from the root of the worktree returns
> ".git").
>
> I wrote a quick test to demonstrate the problem:
>
>
> +test_expect_success 'git-common-dir inside sub-dir' '
> +   (
> + mkdir -p path/to/child &&
> + cd path/to/child &&
> + echo "$(git rev-parse --show-toplevel)/.git" >expected &&

... or

    "$(git rev-parse --show-cdup).git >expect

i.e. to use relative path, just like the case where you start from
the top.

> + git rev-parse --git-common-dir >actual &&
> + test_cmp expected actual
> + )
> +'
> +
>
> I suggest that we change the result of this call to _always_ return an
> absolute path.