Thread (19 messages) flat view 19 messages, 3 authors, 2016-06-15

Re: [PATCH 3/8] git-merge-recursive-{ours,theirs}

From: Avery Pennarun <hidden>
Date: 2016-06-15 22:47:46

On Thu, Nov 26, 2009 at 1:15 AM, Junio C Hamano [off-list ref] wrote:
 - The original series was done over a few weeks in 'pu' and this
  intermediate step was done before a better alternative of not using
  these two extra merge strategies were discovered ("...may have been an
  easy way to experiment, but we should bite the bullet", in the next
  patch).

  As the second round to seriously polish the series for inclusion, it
  would make much more sense to squash this with the next patch to erase
  this failed approach that has already been shown as clearly inferiour.
ok.
 - I think we should avoid adding the extra argument to ll_merge_fn() by
  combining virtual_ancestor and favor into one "flags" parameter.  If
  you do so, we do not have to change the callsites again next time we
  need to add new optional features that needs only a few bits.

  I vaguely recall that I did the counterpart of this patch that way
  exactly for the above reason, but it is more than a year ago, so maybe
  I didn't do it that way.
You did do that, in fact, but I had to redo a bunch of the flag stuff
anyway since a few other flags had been added in the meantime.

I actually tried it both ways (with and without an extra parameter),
but I observed that:

- There are more lines of code (and more confusion) if you use an
all-in-one flags vs. what I did.

- Several functions have the same signature with all-in-one flags vs.
their current boolean parameter, so the code would compile (and then
subtly not work) if I forgot to modify a particular function.

- When we go to add a third flag parameter, it wouldn't be any harder
to join them together at that time, and because it would *again*
modify the function signatures (from two flag params back down to
one), the compiler would *again* be able to catch any functions we
forgot to adjust.

If you think this logic doesn't work, I can redo it with all-in-one
flags as you request.

Avery
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help