On 20/03/18 17:34, Junio C Hamano wrote:
> Johannes Schindelin <johannes.schinde...@gmx.de> writes:
> 
>>> +           if (!keep_empty && is_empty)
>>>                     strbuf_addf(&buf, "%c ", comment_line_char);
> 
> We are not trying to preserve an empty one, and have found an empty
> one, so we comment it out, and then...
> 
>>> +           if (is_empty || !(commit->object.flags & PATCHSAME)) {
>>
>> May I suggest inverting the logic here, to make the code more obvious and
>> also to avoid indenting the block even further?
>>
>>              if (!is_empty && (commit->object.flags & PATCHSAME))
>>                      continue;
> 
> ... if a non-empty one that already appears in the upstream, we do
> not do anything to it.  There is no room for keep-empty or lack of
> it to affect what happens to these commits.
> 
> Otherwise the insn is emitted for the commit.
> 
>>> +                   strbuf_addf(&buf, "%s %s ", insn,
>>> +                               oid_to_hex(&commit->object.oid));
>>> +                   pretty_print_commit(&pp, commit, &buf);
>>> +                   strbuf_addch(&buf, '\n');
>>> +                   fputs(buf.buf, out);
>>> +           }
> 
> I tend to agree that the suggested structure is easier to follow
> than Phillip's version.
> 
> But I wonder if this is even easier to follow.  It makes it even
> more clear that patchsame commits that are not empty are discarded
> unconditionally.
> 
>       while ((commit = get_revision(&revs))) {
>               int is_empty  = is_original_commit_empty(commit);
>               if (!is_empty && (commit->object.flags & PATCHSAME))
>                       continue;
>               strbuf_reset(&buf);
>               if (!keep_empty && is_empty)
>                       strbuf_addf(&buf, "%c ", comment_line_char);
>               strbuf_addf(&buf, "%s %s ", insn,
>                           oid_to_hex(&commit->object.oid));
>               pretty_print_commit(&pp, commit, &buf);
>               strbuf_addch(&buf, '\n');
>               fputs(buf.buf, out);
>       }
> 
> Or did I screw up the rewrite?
> 
I've not tested it but I think it's OK, I agree that it is clearer than
my version

Best Wishes

Phillip

Reply via email to