summaryrefslogtreecommitdiff
path: root/git-gui/lib/commit.tcl
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2020-01-23 11:20:36 -0800
committerPaul Mackerras <paulus@ozlabs.org>2020-04-13 14:36:05 +1000
commite272a77964d95e2fd8b3b47b7f3840ed3e42b81c (patch)
tree1a295d0fb0b02c28fe0b785865fbc7dafce5b4e4 /git-gui/lib/commit.tcl
parentc1a63459ed7364bb03e0549c1f042bca469d278f (diff)
gitk: be prepared to be run in a bare repository
784b7e2f ("gitk: Fix "External diff" with separate work tree", 2011-04-04) added an unconditional call to "git rev-parse --show-toplevel" to set up a global variable quite early in the course of the program, so that the location of the working tree can later be known if/when the user chooses to run the external diff via the external_diff_get_one_file proc. Before that change, the external diff code used to assume that the parent directory of ".git" directory is the top-level of the working tree. Recent versions of git however notices that "rev-parse --show-toplevel" executed in a bare repository is an error, which makes gitk stop, even before the user could attempt to run external diff. Use the gitworktree helper introduced in 65bb0bda ("gitk: Fix the display of files when filtered by path", 2011-12-13), which is prepared to see failures from "rev-parse --show-toplevel" and other means it tries to find the top-level of the working tree instead to work around this issue. The resulting value in $worktree global, when run in a bare repository, is bogus, but the code is not prepared to run external diff correctly without a working tree anyway ;-) [paulus@ozlabs.org - folded in fix from Eric Sunshine] Helped-by: Eric Sunshine <sunshine@sunshineco.com> Signed-off-by: Junio C Hamano <gitster@pobox.com> Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
Diffstat (limited to 'git-gui/lib/commit.tcl')
0 files changed, 0 insertions, 0 deletions