Git development
 help / color / mirror / Atom feed
From: Linus Torvalds <torvalds@linux-foundation.org>
To: Miquel van Smoorenburg <mikevs@xs4all.net>
Cc: git@vger.kernel.org
Subject: Re: git bisect v2.6.27 v2.6.26 problem/bug
Date: Mon, 3 Nov 2008 10:43:09 -0800 (PST)	[thread overview]
Message-ID: <alpine.LFD.2.00.0811031035390.3419@nehalem.linux-foundation.org> (raw)
In-Reply-To: <20081103173911.GA12363@xs4all.net>



On Mon, 3 Nov 2008, Miquel van Smoorenburg wrote:
> 
> If at this point I do a 'git bisect good' I end up in a 2.6.26
> branch, which is good, but after a few bisects I end up at
> a version before v2.6.26 (2.6.26-rc5) again, which should be
> impossible right ?

No, not at all.

What is going on is that you are hitting commits that were not merged into 
2.6.26 (so they are _not_ in the "good" part), but they were _developed_ 
before it. So the kernel Makefile says "v2.6.26-rc8" (not quite 2.6.26 
yet), but that's because the version in the Makefile ends up being a 
linear explanation of what the nearest _earlier_ version was, but is not 
at all indicative of the much more complex non-linear development model.

IOW, you have history that looks like

	- A -> B -> C->
	    \     /
	     - D -

And let's say that 'A' is v2.6.26-rc8, while 'B' is the final v2.6.26 
release, and is your 'good', while 'C' is 2.6.27, and is your 'bad'.

What does that make 'D' then?

It is clearly potentially bad, because it is _not_ in the good set (it was 
merged after 2.6.26, and could very well be the source of your bug. But 
think about what 'Makefile' must contain in 'D'. 

The difference between linear history and non-linear history is very 
important, and "git bisect" very much is all about getting it right. It 
does't take a "linear" half-way point, it really does a _set_ operation, 
and it bisects the set of commits. And that set of commits is a DAG, not a 
linear series.

> Anyway - at the end I end up with a 'good' version that is
> 2.6.26-rc<something> which is kind of useless. I know that
> version up to 2.6.26 are good ...

Not at all. It's not "kind of useless", it's very important.

> What am I doing wrong ?

You're not doing anything wrong, you just didn't realize how non-linear 
development works.

			Linus

      parent reply	other threads:[~2008-11-03 18:44 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-03 17:39 git bisect v2.6.27 v2.6.26 problem/bug Miquel van Smoorenburg
2008-11-03 18:23 ` Alejandro Riveira
2008-11-03 18:43 ` Linus Torvalds [this message]

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=alpine.LFD.2.00.0811031035390.3419@nehalem.linux-foundation.org \
    --to=torvalds@linux-foundation.org \
    --cc=git@vger.kernel.org \
    --cc=mikevs@xs4all.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.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox