Hi Josh,
On Fri, 12 May 2017, Josh Hagins wrote:
> Since upgrading to Git 2.13.0 I'm seeing this error message whenever
> `git config --local <whatever>` is called outside a Git repository.
> For example, note the difference in behavior between Git 2.13 and
> Apple Git:
>
> $ pwd
> /Users/jhagins
> $ /usr/bin/git --version
> git version 2.11.0 (Apple Git-81)
> $ /usr/bin/git config --local --get user.name
> $ /usr/local/bin/git --version
> git version 2.13.0
> $ /usr/local/bin/git config --local --get user.name
> fatal: BUG: setup_git_env called without repository
>
> Apple Git outputs nothing, as expected. The summarized release notes
> published by GitHub specifically mentioned that instances of this
> error message should be reported, so here you go!
>
> Please let me know if I can provide any more information that would be
> helpful.
Since this is in /usr/local/bin/, there are two possibilities:
1) you built and installed it yourself (but then it would be more likely
in your $HOME/bin), or
2) you installed it via HomeBrew.
I guess it is the latter.
In both cases, however, you have XCode installed, so you can dig further.
Yay.
The thing I would do in your case would be to clone Git:
git clone https://github.com/git/git
then check out v2.13.0:
git checkout v2.13.0
then edit the Makefile to remove the -O2 from the CFLAGS (the next step is
to use the GNU debugger, and in my hands the -O2 optimization made that
pretty useless), and then build with
make
After that, you should be able to start the command in your local GNU
debugger:
gdb -args ./git config --local --get user.name
You will then want to set a breakpoint on the die_builtin() function:
b die_builtin
Now run it with the `r` command, and it should stop in the die_builtin
routine, in which case a backtrace would be most helpful to figure out
what is going wrong:
bt
If the output is not enlightening on its own, it would be nice to paste it
into a reply to this mail so that the entire Git developer community can
have a look.
Ciao,
Johannes