Re: [PATCH] bisect: display first bad commit without forking a new process
- From
Junio C Hamano <gitster@pobox.com>
- Date
- May 27, 2009, 22:38 UTC
- Message-ID
- <7veiuai33m.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <200905272107.52095.chriscool@tuxfamily.org>
Christian Couder <chriscool@tuxfamily.org> writes:
Show 32 quoted lines
> Le Wednesday 27 May 2009, Christian Couder a écrit :
>> Previously "git diff-tree --pretty COMMIT" was run using
>> "run_command_v_opt" to display information about the first bad
>> commit.
>>
>> The goal of this patch is to avoid a "fork" and an "exec" call
>> when displaying that information.
>>
>> To do that, we manually setup revision information as
>> "git diff-tree --pretty" would do it, and then use the
>> "log_tree_commit" function.
>>
>> Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
>> ---
>> bisect.c | 30 +++++++++++++++++++++++++++---
>> 1 files changed, 27 insertions(+), 3 deletions(-)
>>
>> diff --git a/bisect.c b/bisect.c
>> index c43c120..e94a77b 100644
>> --- a/bisect.c
>> +++ b/bisect.c
>> @@ -816,6 +816,31 @@ static void check_good_are_ancestors_of_bad(const
>> char *prefix) }
>>
>> /*
>> + * This does "git diff-tree --pretty COMMIT" without one fork+exec.
>> + */
>> +static void show_diff_tree(const char *prefix, struct commit *commit)
>> +{
>> + static struct rev_info opt;
>
> Oops, "static" can be removed, it's a copy-paste error, sorry.Is that "can" or "must"? If the answer is the latter, shouldn't the function be renamed to make it clear it is a bisect specific thing?