Re: understand Diff Formatting --cc flag?
- From
- Andy Zhang <zhgdrx@gmail.com>
- Date
- Mar 16, 2022, 19:00 UTC
- Message-ID
- <CAJcwCMN67UMjSNqf2wbb5ZhK1QGicn7+ihneOc1XxJsdDVtvTw@mail.gmail.com>
- In-Reply-To
- <xmqq8rt9opd1.fsf@gitster.g>
On Thu, Mar 17, 2022 at 12:04 AM Junio C Hamano <gitster@pobox.com> wrote:
Show 25 quoted lines
> > Andy Zhang <zhgdrx@gmail.com> writes: > > > understand Diff Formatting --cc flag? > > > > hi, > > > > It is really too hard to understand Diff Formatting --cc flag. > > > > It is hard to understand"...hunks whose contents in the parents have > > only two variants..". > > > > My question is: > > 1)what does "variant" mean here? > > You may be comparing a merge of 5 parents into 1 child. There are 5 > pairwise comparison (parent#1 with the child, parent#2 with the > child, ..., parent#5 with the child). > > Among 5 parents, perhaps parent#1 and parent#2 had the same contents, > and parent#4 and parent#5 had the same contents, different from what > parent#1 and parent#3 had. You have 3 variants (parent#1's, #3's > and #4's; parent#2 has the same contents as #1, parent#5 has the > same contents as #4). >
[Andy wrote:] as per your comments, The 3 variants are indeed into the following 3 groups. My question is: why can #1 appear inside multiple groups? A and B. <group-A> parent#1, #3, #4; <group-B> parent#2, #1; <group-C> parent#5, #4;
Show 14 quoted lines
> > 2)what about all the other cases? 0 variants, 1 variants, and 3 > > variants and even more? > > By definition, you wouldn't be making any comparison if there are 0 > variants. 1 variant means all the parents are identical, so > whichever parent you are interested in, the difference to the child > is interesting---such a change can only come from the person who > merged adding a change that no parent wanted to have. If many > parents are different then showing the comparison with the final > resolution from them is useful. The case that is not so interesting > is when one set of parents had something (call it A), and the other > set of parents had something else (B), and the result is A. There is > no interesting merge conflict in there. >
[Andy wrote:] can I explain "--cc" flag as: "--cc lists only either hunks which were modified from all parents, or hunks which were modified from at least two parents and they had different variants"