From: Junio C Hamano <gitster@pobox.com>
To: Dennis Kaarsemaker <dennis@kaarsemaker.net>
Cc: Johannes Schindelin <johannes.schindelin@gmx.de>,
Paul Tan <pyokagan@gmail.com>,
Git Mailing List <git@vger.kernel.org>,
Stefan Beller <sbeller@google.com>,
Matthieu Moy <Matthieu.Moy@grenoble-inp.fr>,
Ramkumar Ramachandra <artagnon@gmail.com>
Subject: Re: [PATCH v2] pull: handle --log=<n>
Date: Tue, 19 May 2015 19:19:59 -0700 [thread overview]
Message-ID: <xmqqegmcour4.fsf@gitster.dls.corp.google.com> (raw)
In-Reply-To: <CAPc5daUF_yotXVf_=CFz_q1GBXVdq8pJxeuNuv=BAC54TJVT9w@mail.gmail.com> (Junio C. Hamano's message of "Tue, 19 May 2015 16:14:03 -0700")
Junio C Hamano <gitster@pobox.com> writes:
> On Tue, May 19, 2015 at 3:30 PM, Dennis Kaarsemaker
> <dennis@kaarsemaker.net> wrote:
>> On di, 2015-05-19 at 15:10 -0700, Junio C Hamano wrote:
>>> Dennis Kaarsemaker <dennis@kaarsemaker.net> writes:
>>>
>>> > I've actually done it differently while implementing:
>>> >
>>> > 1) Make test_commit recognize --tags and stop creating tags unless
>>> > specified
>>> > 2) while ! prove --state=save,failed {
>>> > Find and fix tests that now need --tags
>>> > }
>>>
>>> That was what I feared. The result of that process is the hardest
>>> to reason about and review.
>>
>> I'm not quite sure I understand what you're trying to say. You seem to
>> be worried that there will be silent successes for tests that should
>> fail after N/N if I take the proposed approach. I have no idea how that
>> could happen though.
>
> You are placing too much faith in the tests. We would want to see
> a conversion that is reasonable and indeed reasoned by eyeballing
> the change for correctness.
To put it in another way, imagine this scenario.
Six months ago, you found a bug in "git frotz" command. The bug
triggered only when a commit had an extra tag pointing at it. You
fixed the bug, and in order to protect your fix from getting broken
by other people, added a new test that would have failed with the
bug present, perhaps like this:
test_expect_success 'commit with an extra tag' '
test_commit sample &&
git frotz HEAD
'
Fast forward to today. You changed "test_commit" and it no longer
creates a tag by default with your step 1.
You run this test again.
It will pass.
Why? "git frotz" command used to break when you had tag, but did
not break if you didn't have the tag even without your bugfix six
months ago.
Next week, somebody will accidentally break the bugfix you did six
months ago. "git frotz" again does not work correctly when the
commit is pointed at by a tag. But with the test will not catch
this breakage.
The problem was that your step 1 broke this test, and your step 2
of running the test did not catch the fact that you broke it.
Hopefully now you have some idea how your approach is problematic.
next prev parent reply other threads:[~2015-05-20 2:20 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-05-18 13:39 [PATCH v2] pull: handle --log=<n> Paul Tan
2015-05-18 14:53 ` Johannes Schindelin
2015-05-18 18:18 ` Junio C Hamano
2015-05-19 13:35 ` Johannes Schindelin
2015-05-19 13:57 ` Junio C Hamano
2015-05-19 21:24 ` Dennis Kaarsemaker
2015-05-19 21:33 ` Stefan Beller
2015-05-19 21:43 ` Dennis Kaarsemaker
2015-05-19 21:37 ` Junio C Hamano
2015-05-19 21:49 ` Dennis Kaarsemaker
2015-05-19 22:10 ` Junio C Hamano
2015-05-19 22:30 ` Dennis Kaarsemaker
2015-05-19 23:14 ` Junio C Hamano
2015-05-20 2:19 ` Junio C Hamano [this message]
2015-05-20 8:11 ` Dennis Kaarsemaker
2015-05-20 5:10 ` Junio C Hamano
2015-05-20 8:13 ` Dennis Kaarsemaker
2015-05-21 10:36 ` [PATCH v3] " Paul Tan
2015-05-21 21:24 ` Junio C Hamano
2015-05-22 13:29 ` Paul Tan
2015-05-18 15:15 ` [PATCH v2] " Paul Tan
2015-05-18 15:26 ` Johannes Schindelin
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=xmqqegmcour4.fsf@gitster.dls.corp.google.com \
--to=gitster@pobox.com \
--cc=Matthieu.Moy@grenoble-inp.fr \
--cc=artagnon@gmail.com \
--cc=dennis@kaarsemaker.net \
--cc=git@vger.kernel.org \
--cc=johannes.schindelin@gmx.de \
--cc=pyokagan@gmail.com \
--cc=sbeller@google.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.