From: Sergey Organov <sorganov@gmail.com>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>,
git@vger.kernel.org, Chris Torek <chris.torek@gmail.com>
Subject: Re: [PATCH v2 0/7] making log --first-parent imply -m
Date: Wed, 05 Aug 2020 01:15:27 +0300 [thread overview]
Message-ID: <87y2muvz0g.fsf@osv.gnss.ru> (raw)
In-Reply-To: <20200804220740.GA2022650@coredump.intra.peff.net> (Jeff King's message of "Tue, 4 Aug 2020 18:07:40 -0400")
Jeff King <peff@peff.net> writes:
> On Wed, Aug 05, 2020 at 12:41:25AM +0300, Sergey Organov wrote:
>
>> >> It's 4 lines above, as it's in fact common for all the cases but the
>> >> first one.
>> >
>> > Ah, I missed that. That raises more questions, though. ;)
>> >
>> > For "-m" we do not need to set revs->diff; why do we need to do so
>> > here?
>>
>> Good question!
>>
>> I believe --diff-merges=all should reset revs->diff back to 0 to
>> entirely undo all the effects of '-c' and '--cc', provided those
>> appeared before on the command-line, that '-m' fails to do.
>
> Making it counteract "--cc" makes sense, but revs->diff is used for much
> more than that. So "--cc" sets revs->diff to 1, but so do many other
> unrelated options (e.g., "--full-diff" for one).
>
> I think to do it right you'd need to have this part of the code just set
> a single enum variable, like:
>
> ...
> else if (!strcmp(arg, "--cc")) {
> revs->diff_merges = DIFF_MERGES_DENSE_COMBINED;
> } else if (!strcmp(arg, "-m")) {
> revs->diff_merges = DIFF_MERGES_ALL_PARENTS;
> }
> ...etc...
>
> and then later resolve that into the set of flags we need:
>
> switch (revs->diff_merges) {
> case DIFF_MERGES_DENSE_COMBINED:
> revs->diff = 1;
> revs->dense_combined_merges = 1;
> revs->combine_merges = 1;
> revs->ignore_merges = 0;
> break;
> case DIFF_MERGES_ALL_PARENTS:
> revs->ignore_merges = 0;
> break;
> ...etc...
> }
>
> it may even be that we can get rid of the separate combine_merges and
> dense_combined_merges flag and just have callers look at
> rev.diff_merges, which would simplify the code even further. But that
> cleanup could also come later on top.
Sounds like a plan! I like it.
Thanks,
-- Sergey
next prev parent reply other threads:[~2020-08-04 22:15 UTC|newest]
Thread overview: 86+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-28 16:36 [PATCH 0/3] making --first-parent imply -m Jeff King
2020-07-28 16:36 ` [PATCH 1/3] log: drop "--cc implies -m" logic Jeff King
2020-07-28 16:38 ` [PATCH 2/3] revision: add "--ignore-merges" option to counteract "-m" Jeff King
2020-07-28 17:52 ` Chris Torek
2020-07-29 18:42 ` Jeff King
2020-07-28 21:01 ` Junio C Hamano
2020-07-29 18:22 ` Jeff King
2020-07-29 18:30 ` Jeff King
2020-07-29 18:53 ` Junio C Hamano
2020-07-28 16:39 ` [PATCH 3/3] log: enable "-m" automatically with "--first-parent" Jeff King
2020-07-28 16:47 ` [PATCH 0/3] making --first-parent imply -m Jeff King
2020-07-28 16:48 ` Junio C Hamano
2020-07-28 16:53 ` Jeff King
2020-07-28 16:55 ` Taylor Blau
2020-07-29 20:10 ` [PATCH v2 0/7] making log " Jeff King
2020-07-29 20:10 ` [PATCH v2 1/7] log: drop "--cc implies -m" logic Jeff King
2020-07-29 20:10 ` [PATCH v2 2/7] revision: add "--no-diff-merges" option to counteract "-m" Jeff King
2020-07-29 20:10 ` [PATCH v2 3/7] log: enable "-m" automatically with "--first-parent" Jeff King
2020-07-29 20:28 ` Junio C Hamano
2020-07-29 20:11 ` [PATCH v2 4/7] doc/git-log: move "Diff Formatting" from rev-list-options Jeff King
2020-07-29 20:56 ` Junio C Hamano
2020-07-29 21:02 ` Jeff King
2020-07-29 20:11 ` [PATCH v2 5/7] doc/git-log: drop "-r" diff option Jeff King
2020-07-29 20:12 ` [PATCH v2 6/7] doc/git-log: move "-t" into diff-options list Jeff King
2020-07-29 21:10 ` Junio C Hamano
2020-07-29 21:55 ` Jeff King
2020-07-29 20:12 ` [PATCH v2 7/7] doc/git-log: clarify handling of merge commit diffs Jeff King
2020-07-29 21:03 ` [PATCH v2 0/7] making log --first-parent imply -m Chris Torek
2020-07-29 21:41 ` Sergey Organov
2020-07-31 23:08 ` Jeff King
2020-08-02 12:59 ` Sergey Organov
2020-08-02 17:35 ` Junio C Hamano
2020-08-03 15:47 ` Sergey Organov
2020-08-03 16:35 ` Junio C Hamano
2020-08-03 16:41 ` Sergey Organov
2020-08-03 17:21 ` Junio C Hamano
2020-08-03 20:25 ` Sergey Organov
2020-08-03 20:58 ` Jeff King
2020-08-03 21:16 ` Sergey Organov
2020-08-03 18:08 ` Jeff King
2020-08-03 20:00 ` Sergey Organov
2020-08-03 20:55 ` Jeff King
2020-08-03 21:18 ` Sergey Organov
2020-08-04 17:50 ` Sergey Organov
2020-08-04 19:42 ` Junio C Hamano
2020-08-04 20:00 ` Jeff King
2020-08-04 20:55 ` Sergey Organov
2020-08-04 21:22 ` Jeff King
2020-08-04 21:55 ` Junio C Hamano
2020-08-04 22:06 ` Sergey Organov
2020-08-04 22:14 ` Jeff King
2020-08-04 22:49 ` Junio C Hamano
2020-08-07 8:26 ` Jeff King
2020-08-07 9:25 ` Sergey Organov
2020-08-07 17:43 ` Junio C Hamano
2020-08-07 17:52 ` Sergey Organov
2020-08-07 19:01 ` Junio C Hamano
2020-08-07 19:12 ` Sergey Organov
2020-08-07 19:20 ` Jeff King
2020-08-07 19:28 ` Sergey Organov
2020-08-07 19:46 ` Junio C Hamano
2020-08-07 20:29 ` Sergey Organov
2020-08-07 20:39 ` Junio C Hamano
2020-08-07 21:08 ` Sergey Organov
2020-08-07 21:54 ` Junio C Hamano
2020-08-07 23:07 ` Sergey Organov
2020-08-04 22:53 ` Sergey Organov
2020-08-04 21:21 ` Sergey Organov
2020-08-04 21:26 ` Jeff King
2020-08-04 19:58 ` Jeff King
2020-08-04 20:56 ` Sergey Organov
2020-08-04 21:25 ` Jeff King
2020-08-04 21:41 ` Sergey Organov
2020-08-04 22:07 ` Jeff King
2020-08-04 22:15 ` Sergey Organov [this message]
2020-08-04 21:27 ` Junio C Hamano
2020-08-04 21:44 ` Sergey Organov
2020-08-04 21:58 ` Sergey Organov
2020-08-04 22:08 ` Jeff King
2020-08-04 22:26 ` [PATCH] revision: fix die() message for "--unpacked=" Sergey Organov
2020-08-05 0:03 ` Junio C Hamano
2020-08-05 15:37 ` [PATCH v2 0/7] making log --first-parent imply -m Sergey Organov
2020-08-05 16:05 ` Junio C Hamano
2020-08-05 17:55 ` Sergey Organov
2020-08-05 19:24 ` Junio C Hamano
2020-08-05 20:27 ` Sergey Organov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87y2muvz0g.fsf@osv.gnss.ru \
--to=sorganov@gmail.com \
--cc=chris.torek@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=peff@peff.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.