Re: [PATCH 1/3] git-gui: properly check for a bare repo
On Wed, Feb 18, 2009 at 6:16 PM, Shawn O. Pearce <spearce@spearce.org> wrote:
Show 29 quoted lines
> Giuseppe Bilotta <giuseppe.bilotta@gmail.com> wrote:
>> When bare repository handling is not enabled, check for a bare
>> repository looking at the core.bare config option rather than refusing
>> to operate with a git directory ending with .git.
>>
>> Signed-off-by: Giuseppe Bilotta <giuseppe.bilotta@gmail.com>
>> ---
>> I know I should have probably used something like
>> git rev-parse --is-bare-repository instead, but I didn't feel like
>> adding another git call. Is the config approach robust enough?
>>
>> git-gui/git-gui.sh | 2 +-
>> 1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/git-gui/git-gui.sh b/git-gui/git-gui.sh
>> index e018e07..658a728 100755
>> --- a/git-gui/git-gui.sh
>> +++ b/git-gui/git-gui.sh
>> @@ -1071,7 +1071,7 @@ if {$_prefix ne {}} {
>> }
>> unset cdup
>> } elseif {![is_enabled bare]} {
>> - if {[lindex [file split $_gitdir] end] ne {.git}} {
>> + if {[is_config_true core.bare]} {
>
> This doesn't work as you expect. Its a chicken-and-egg problem.
> We haven't read the config yet because we aren't sure that the
> $_gitdir really is a git directory. Consequently, core.bare is
> always false.Isn't the config loaded on line 1053?
Better ways to work around the issue?
--
Giuseppe "Oblomov" Bilotta