Re: [PATCH 44/47] Remove all logic from get_git_work_tree()
- From
Nguyen Thai Ngoc Duy <pclouds@gmail.com>
- Date
- Dec 22, 2010, 07:22 UTC
- Message-ID
- <AANLkTikOOaKSf333UzawEgAf_=t-WBrWLu7tmiOrqO8V@mail.gmail.com>
- In-Reply-To
- <7vpqsu6059.fsf@alter.siamese.dyndns.org>
2010/12/22 Junio C Hamano <gitster@pobox.com>:
Show 15 quoted lines
>> const char *get_git_work_tree(void)
>> {
>> - if (startup_info && !startup_info->setup_explicit) {
>> -...
>> - }
>> return work_tree;
>> }
>
> Would it be a bug in the new set-up code if this function gets called and
> work_tree is still NULL?
>
> There are quite a few callers that call get_git_work_tree() and expect
> that it will always return a non NULL pointer. Perhaps we would want an
> assertion here?
>While the assertion sounds good, it does not work well. The old function can return NULL in bare repos. is_bare_repository() and is_inside_work_tree() expect NULL from get_git_work_tree() sometimes.
I'll see if I can move is_inside_work_tree() over environment.c (so that both callers can access work_tree var directly) and have a clean "make test". It does not look feasible though because of the static variable inside_work_tree in setup.c.
-- Duy