git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Avery Pennarun <apenwarr@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: git@vger.kernel.org
Subject: Re: [PATCH 3/8] git-merge-recursive-{ours,theirs}
Date: Thu, 26 Nov 2009 17:05:23 -0500	[thread overview]
Message-ID: <32541b130911261405q6564d8f2o30b7d7fd6f708d05@mail.gmail.com> (raw)
In-Reply-To: <7vr5rlerqf.fsf@alter.siamese.dyndns.org>

On Thu, Nov 26, 2009 at 1:15 AM, Junio C Hamano <gitster@pobox.com> 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

  reply	other threads:[~2009-11-26 22:05 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-26  2:23 [PATCH 0/8] The return of -Xours, -Xtheirs, -Xsubtree=dir Avery Pennarun
2009-11-26  2:23 ` [PATCH 1/8] git-merge-file --ours, --theirs Avery Pennarun
2009-11-26  2:23   ` [PATCH 2/8] builtin-merge.c: call exclude_cmds() correctly Avery Pennarun
2009-11-26  2:23     ` [PATCH 3/8] git-merge-recursive-{ours,theirs} Avery Pennarun
2009-11-26  2:23       ` [PATCH 4/8] Teach git-merge to pass -X<option> to the backend strategy module Avery Pennarun
2009-11-26  2:23         ` [PATCH 5/8] Teach git-pull to pass -X<option> to git-merge Avery Pennarun
2009-11-26  2:23           ` [PATCH 6/8] Make "subtree" part more orthogonal to the rest of merge-recursive Avery Pennarun
2009-11-26  2:23             ` [PATCH 7/8] Extend merge-subtree tests to test -Xsubtree=dir Avery Pennarun
2009-11-26  2:24               ` [PATCH 8/8] Document that merge strategies can now take their own options Avery Pennarun
2009-11-26  6:17             ` [PATCH 6/8] Make "subtree" part more orthogonal to the rest of merge-recursive Junio C Hamano
2009-11-26  6:16           ` [PATCH 5/8] Teach git-pull to pass -X<option> to git-merge Junio C Hamano
2009-11-26  6:16         ` [PATCH 4/8] Teach git-merge to pass -X<option> to the backend strategy module Junio C Hamano
2009-11-26  6:15       ` [PATCH 3/8] git-merge-recursive-{ours,theirs} Junio C Hamano
2009-11-26 22:05         ` Avery Pennarun [this message]
2009-11-30  6:21           ` Junio C Hamano
2009-11-30 18:08             ` Avery Pennarun
2009-11-30 19:56               ` Junio C Hamano
2009-11-30 20:01                 ` Junio C Hamano
2009-11-30 20:02                 ` Avery Pennarun
2009-11-26  5:36     ` [PATCH 2/8] builtin-merge.c: call exclude_cmds() correctly Junio C Hamano
2009-11-26 22:00       ` Avery Pennarun
2009-11-26  6:17   ` [PATCH 1/8] git-merge-file --ours, --theirs Junio C Hamano
2009-11-26  6:37     ` Nanako Shiraishi
2009-11-26  7:05       ` Junio C Hamano
2009-11-26  7:30         ` Nanako Shiraishi
2009-11-26 21:55     ` Avery Pennarun

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=32541b130911261405q6564d8f2o30b7d7fd6f708d05@mail.gmail.com \
    --to=apenwarr@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).