From: "Stephen R. van den Berg" <srb@cuci.nl>
To: Junio C Hamano <gitster@pobox.com>
Cc: Lars Hjemli <hjemli@gmail.com>,
nanako3@bluebottle.com, git@vger.kernel.org
Subject: Re: [PATCH v2] revision.c: really honor --first-parent
Date: Wed, 14 May 2008 12:34:54 +0200 [thread overview]
Message-ID: <20080514103454.GA28610@cuci.nl> (raw)
In-Reply-To: <7vej85suc2.fsf@gitster.siamese.dyndns.org>
Junio C Hamano wrote:
>"Lars Hjemli" <hjemli@gmail.com> writes:
>>> - Your code now doesn't simplify the (IMO) convoluted walk, and still
>>> marks things as seen, even though in the first-parent case, these
>>> commits are not really seen at all. It implies that your code
>>> generates differing output, depending on the merges present.
>> I don't think so. My code should neither follow nor mark as SEEN any
>> parent but the first (but I could obviously be wrong).
>A major part of the "convoluted walk" is the (il-)logic that skipped
>earlier SEEN parents and treated the first unseen one as if it was the
>first parent, which is not exactly Stephen's fault. It was placed by
>yours truly in the very original code but it was done without much
>thought.
>I think your patch is the correct fix for that convolution, regardless of
>the traversal order stability issue Stephen mentions.
I agree that Lars' patch prevents parts of the tree to go "dark" (so did
my patch).
However, without either patch, that implies that the current --first-parent
code has a high probability of obscuring parts of the tree depending on
traversing order (in any tree which contains at least one merge).
So, I'd say, since the current code does not and cannot work reliably
for anyone specifically using --first-parent (with every merge
encountered, the probability of correctness is multiplied by 0.5 at
most/least), you are going to do them a favour anyway by fixing the code,
then why not simplify the convolution and make the code rock-steady (and
implement my patch)?
Anyone using --first-parent in production now has an embarrassingly high
probability of missing commits in his generated lists (I know that I
noticed the problem within 5 minutes from actually trying to use the
flag to get meaningful output). So fixing and simplifying the code now
is rather unlikely to create any more surprises than the current code
already presents to existing users (if any).
--
Sincerely, srb@cuci.nl
Stephen R. van den Berg.
What if there were no hypothetical questions?
next prev parent reply other threads:[~2008-05-14 10:35 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-05-11 7:03 "git log --first-parent" shows parents that are not first しらいしななこ
2008-05-11 18:44 ` Junio C Hamano
2008-05-11 23:14 ` [PATCH] revision.c: really honor --first-parent Lars Hjemli
2008-05-12 15:12 ` [PATCH v2] " Lars Hjemli
2008-05-13 20:15 ` Stephen R. van den Berg
2008-05-13 20:43 ` Lars Hjemli
2008-05-13 22:38 ` Junio C Hamano
2008-05-14 10:34 ` Stephen R. van den Berg [this message]
2008-05-14 10:54 ` Lars Hjemli
2008-05-14 11:10 ` Stephen R. van den Berg
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=20080514103454.GA28610@cuci.nl \
--to=srb@cuci.nl \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=hjemli@gmail.com \
--cc=nanako3@bluebottle.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).