Re: [PATCH 03/30] merge-recursive: Add explanation for src_entry and dst_entry
On Mon, Nov 13, 2017 at 1:06 PM, Stefan Beller <sbeller@google.com> wrote:
Show 8 quoted lines
> On Fri, Nov 10, 2017 at 11:05 AM, Elijah Newren <newren@gmail.com> wrote:
>> + /*
>> + * Because I keep forgetting every few years what src_entry and
>> + * dst_entry are and have to walk through a debugger and puzzle
>> + * through it to remind myself...
>
> This repeats the commit message; and doesn't help me understanding the
> {src/dst}_entry. (Maybe drop the first part here?) I'll read on.Show 14 quoted lines
>> + *
>> + * If 'before' is renamed to 'after' then src_entry will contain
>> + * the versions of 'before' from the merge_base, HEAD, and MERGE in
>> + * stages 1, 2, and 3; dst_entry will contain the versions of
>> + * 'after' from the merge_base, HEAD, and MERGE in stages 1, 2, and
>> + * 3.
>
> So src == before, dst = after; no trickery with the stages (the same
> stage number
> before and after; only the order needs to be conveyed:
> base, HEAD (ours?), MERGE (theirs?)
>
> I can understand that, so I wonder if we can phrase it to mention (base,
> HEAD, MERGE) just once.
Perhaps:
If 'before' is renamed to 'after' then src_entry will contain
the versions of 'before' from the merge_base, HEAD, and MERGE in
stages 1, 2, and 3; and dst_entry will contain the respective versions of
'after' in corresponding locations. Thus, we have a total of six modes
and oids, though some will be null. (Stage 0 is ignored; we're interested
in handling conflicts.)
?