Johannes Schindelin <Johannes.Schindelin@xxxxxx> writes: > On Wed, 8 Feb 2017, Junio C Hamano wrote: > >> How long has "rev-parse --git-path" been around? Had scripts in the >> wild chance to learn to live with the "output is relative to the top of >> the working tree" reality? I think the answers are "since 2.5" and >> "yes". > > Correct. And the third question is: How did the scripts work around this > feature? > > The answer is obvious: by switching back to `$(git rev-parse > --git-dir)/filename`. > > This is literally on what I spent the better part of Wednesday. > > There is just no way you can "fix" this otherwise. As an occasional shell > scripter, you may be tempted to use `$(git rev-parse --show-cdup)$(git > rev-parse --git-path filename)`, but of course that breaks in worktrees > and if you do not use worktrees you would not even know that your > workaround introduced another bug. In case it is not clear, I understand all of the above. I was just worried about the people who do *NOT* use worktrees and did the obvious "concatenate --cdup with --git-path" and thought their script were working happily and well. By prepending the path to the (real) location of the .git in the updated --git-path output ourselves, they will complain, our update broke their script. If we introduced the fix gently, by (1) warn when "--git-path" is used but give the current output anyway, while adding the "fixed" one as another new option, and then (2) remove "--git-path" after several releases, they will not have to complain, even though they will see warning until they stop using "--git-path". There may be gentler alternative ways to transition, and I do not worry about the specifics of them too much. I just think we cannot do this in a single step without harming existing users.