Subject: Re: [PATCH] Remove duplicate #include

From: Dilyan Palauzov <[email-masked]>
Date: Fri, 13 Feb 2015 22:57:27 +0100

Hello Junio,

in theory it speeds up, because the preprocessor has less work to do.
In practice I don't know how much and this seems also irrelevant
criterion for accepting this patch.

Greetings
  Dilyan

On 13.02.2015 22:15, Junio C Hamano wrote:
> Дилян Палаузов  <[email-masked]> writes:
> 
>> deheader (git://gitorious.org/deheader/deheader.git) found out that
>> some .c files #include twice one and the same header file.
>>
>> This patch removes such occurrences and hence speeds up the compilation.
> 
> Does it speed up?  By how much?  Any numbers?
> 
> I do not see any reason to reject this change.  Removing repeated
> inclusions of the same header is a good thing by itself [*1*].
> 
> Thanks.
> 
> [Footnote]
> 
> *1* If things break when repeated inclusions are removed, that would
> mean the headers were wrong in the first place.  I do not think
> transport.h, string-list.h, quote.h and cache.h have any reason why
> they need to be included twice to work correctly, and in fact they
> are designed to be no-op when included twice.
> 
>> Signed-off-by: Дилян Палаузов <[email-masked]>
>> ---
>>   builtin/fetch.c    | 1 -
>>   trailer.c          | 1 -
>>   transport-helper.c | 1 -
>>   userdiff.c         | 1 -
>>   4 files changed, 4 deletions(-)
>>
>> diff --git a/builtin/fetch.c b/builtin/fetch.c
>> index 7b84d35..75a55e5 100644
>> --- a/builtin/fetch.c
>> +++ b/builtin/fetch.c
>> @@ -11,7 +11,6 @@
>>   #include "run-command.h"
>>   #include "parse-options.h"
>>   #include "sigchain.h"
>> -#include "transport.h"
>>   #include "submodule.h"
>>   #include "connected.h"
>>   #include "argv-array.h"
>> diff --git a/trailer.c b/trailer.c
>> index 623adeb..05b3859 100644
>> --- a/trailer.c
>> +++ b/trailer.c
>> @@ -1,7 +1,6 @@
>>   #include "cache.h"
>>   #include "string-list.h"
>>   #include "run-command.h"
>> -#include "string-list.h"
>>   #include "commit.h"
>>   #include "trailer.h"
>>   /*
>> diff --git a/transport-helper.c b/transport-helper.c
>> index 0224687..3652b16 100644
>> --- a/transport-helper.c
>> +++ b/transport-helper.c
>> @@ -5,7 +5,6 @@
>>   #include "commit.h"
>>   #include "diff.h"
>>   #include "revision.h"
>> -#include "quote.h"
>>   #include "remote.h"
>>   #include "string-list.h"
>>   #include "thread-utils.h"
>> diff --git a/userdiff.c b/userdiff.c
>> index fad52d6..2ccbee5 100644
>> --- a/userdiff.c
>> +++ b/userdiff.c
>> @@ -1,6 +1,5 @@
>>   #include "cache.h"
>>   #include "userdiff.h"
>> -#include "cache.h"
>>   #include "attr.h"
>>   
>>   static struct userdiff_driver *drivers;