git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Philip Oakley" <philipoakley@iee.org>
To: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>,
	"Johannes Sixt" <j6t@kdbg.org>
Cc: "Christian Couder" <christian.couder@gmail.com>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Lars Schneider" <larsxschneider@gmail.com>,
	"git" <git@vger.kernel.org>, "Jeff King" <peff@peff.net>,
	"Brandon Williams" <bmwill@google.com>
Subject: Re: What's cooking in git.git (Apr 2017, #04; Wed, 19)
Date: Mon, 24 Apr 2017 17:34:32 +0100	[thread overview]
Message-ID: <ADC645666B1F4ECA92E9082F0565F475@PhilipOakley> (raw)
In-Reply-To: alpine.DEB.2.20.1704241622510.3480@virtualbox

From: "Johannes Schindelin" <Johannes.Schindelin@gmx.de>
> Hi Hannes,
>
> On Sat, 22 Apr 2017, Johannes Sixt wrote:
>
>> Am 21.04.2017 um 14:29 schrieb Christian Couder:
>> > First bisect should ask you to test merge bases only if there are
>> > "good" commits that are not ancestors of the "bad" commit.
>>
>> That's a tangent, but I have never understood why this needs to be so.
>> Consider this:
>>
>>    o--o--o--o--o--o--o--o--B
>>    /           /
>>  -o--o--o--o--g--o--o--o--o--G
>>
>> When I mark B as bad and G as good, why would g have to be tested first? 
>> This
>> is exactly what I do when I bisect in Git history: I mark the latest 
>> commits
>> on git-gui and gitk sub-histories as good, because I know they can't 
>> possibly
>> be bad. (In my setup, these two histories are ahead of pu and next.)
>
> I guess the idea behind bisect's reasoning is that you could have merged
> the "wrong" branch first.
>
> Ciao,
> Dscho
>

Sorry if I'm bikeshedding here, but it does look like adding an alternate 
'bisect' strategy may be useful for this style of integration testing.

To me, given the multiplicity of independent branches being brought 
together, it should be possible to do a check on each of the branches 
separately, before the tests along the line of integration . The tests would 
not be a true 'bisection' as they are separate single point tests, but they 
do establish good commits at the tips of those branches.

Thus, for each of the merges in the --first-parent traversal, the option 
could test (in the OS of choice) the *second parent* commit of the merge. 
This sets the known good points. The breakages during the integration then 
become easier to bisect, as it is only looking for the integration of a good 
series into mainline that breaks. [1]

In addition, an aside that dscho made earlier about the merge-base of some 
branches relative to Windows may have been missed. The normal bisect process 
assumes that we start from a set of good merge bases. However, dscho noticed 
that occasionally some series may choose an older point on maint (etc.) that 
itself would _not_ be classed as good when tested on Windows (or on other 
OS's). Those older mergebases can make the classic bisect across all the 
commits in the DAG between here and there a tortuous process, especially if 
the local OS implementation percieves the base points as bad! (which breaks 
expectations).

--
Philip


[1] It maybe that this can be approached via an alternate DAG, which could 
be 'faked' up as if each of the topic branches had been squashed from being 
a long series down to a single commit (the final tree of the series), and 
then likewise (same tree) for the integration merges, such that all the 
singleton commits are not tested, only the pre and post merge commits on the 
first-parent traverse. 


  reply	other threads:[~2017-04-24 16:35 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-20  5:37 What's cooking in git.git (Apr 2017, #04; Wed, 19) Junio C Hamano
2017-04-20  9:59 ` Duy Nguyen
2017-04-20 15:35   ` Jeff King
2017-04-20 22:51     ` Junio C Hamano
2017-04-20 22:46   ` Junio C Hamano
     [not found] ` <D61D47BD-9750-4FB6-892E-013504E03738@gmail.com>
2017-04-20 13:24   ` Johannes Schindelin
2017-04-20 16:56     ` Brandon Williams
2017-04-20 23:18       ` Brandon Williams
2017-04-21  0:56         ` Junio C Hamano
2017-04-20 22:58   ` Junio C Hamano
2017-04-21  9:50     ` Johannes Schindelin
2017-04-21 12:29       ` Christian Couder
2017-04-22 11:48         ` Johannes Schindelin
2017-04-22 17:32           ` Christian Couder
2017-04-24 14:08             ` Johannes Schindelin
2017-04-22 13:37         ` Johannes Sixt
2017-04-24 14:24           ` Johannes Schindelin
2017-04-24 16:34             ` Philip Oakley [this message]
2017-04-25  2:17               ` Christian Couder
2017-04-25  2:00           ` Christian Couder
2017-04-25  5:51             ` Johannes Sixt
2017-04-25  6:52               ` Junio C Hamano
2017-04-25 18:26                 ` Johannes Sixt
2017-04-24  0:25       ` Junio C Hamano
2017-04-24 14:19         ` Johannes Schindelin
2017-04-24 15:18           ` Ævar Arnfjörð Bjarmason
2017-04-25  0:56             ` Junio C Hamano
2017-04-20 15:32 ` Lars Schneider
2017-04-20 22:52   ` Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ADC645666B1F4ECA92E9082F0565F475@PhilipOakley \
    --to=philipoakley@iee.org \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=bmwill@google.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=j6t@kdbg.org \
    --cc=larsxschneider@gmail.com \
    --cc=peff@peff.net \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).