{"thread":{"id":"16155","subject":"git bisect v2.6.27 v2.6.26 problem/bug","startedAt":"2008-11-03T17:39:15Z","lastAt":"2008-11-03T18:43:09Z","messageCount":3,"participants":["Miquel van Smoorenburg","Alejandro Riveira","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"94783","messageId":"20081103173911.GA12363@xs4all.net","threadId":"16155","inReplyTo":null,"subject":"git bisect v2.6.27 v2.6.26 problem/bug","fromName":"Miquel van Smoorenburg","fromEmail":"mikevs@xs4all.net","sentAt":"2008-11-03T17:39:15Z","receivedAt":"2008-11-03T17:39:15Z","isPatch":false,"sender":{"key":"mikevs@xs4all.net","avatar":null},"body":"I'm trying to nail down a disk statistics issue that was introduced\nin 2.6.27, while 2.6.26 was working OK. So I decided to use git bisect.\n\nHowever, sometimes I end up with a version before 2.6.26:\n\n$ cat .git/BISECT_LOG\ngit-bisect start\n# good: [bce7f793daec3e65ec5c5705d2457b81fe7b5725] Linux 2.6.26\ngit-bisect good bce7f793daec3e65ec5c5705d2457b81fe7b5725\n# bad: [3fa8749e584b55f1180411ab1b51117190bac1e5] Linux 2.6.27\ngit-bisect bad 3fa8749e584b55f1180411ab1b51117190bac1e5\n# bad: [dd9ca5d9be7eba99d685d733e23d5be7110e9556] USB: usb-serial: fix a sparse warning about different signedness\ngit-bisect bad dd9ca5d9be7eba99d685d733e23d5be7110e9556\n# good: [84c3d4aaec3338201b449034beac41635866bddf] Merge commit 'origin/master'\ngit-bisect good 84c3d4aaec3338201b449034beac41635866bddf\n\n$ head -4 Makefile \nVERSION = 2\nPATCHLEVEL = 6\nSUBLEVEL = 26\nEXTRAVERSION = -rc8\n\nIf at this point I do a 'git bisect good' I end up in a 2.6.26\nbranch, which is good, but after a few bisects I end up at\na version before v2.6.26 (2.6.26-rc5) again, which should be\nimpossible right ?\n\nAnyway - at the end I end up with a 'good' version that is\n2.6.26-rc<something> which is kind of useless. I know that\nversion up to 2.6.26 are good ...\n\nWhat am I doing wrong ?\n\n(git version 1.5.6.5 from debian/lenny)\n\nMike.\n"},{"id":"94786","messageId":"genfie$vbs$1@ger.gmane.org","threadId":"16155","inReplyTo":"20081103173911.GA12363@xs4all.net","subject":"Re: git bisect v2.6.27 v2.6.26 problem/bug","fromName":"Alejandro Riveira","fromEmail":"ariveira@gmail.com","sentAt":"2008-11-03T18:23:10Z","receivedAt":"2008-11-03T18:23:10Z","isPatch":false,"sender":{"key":"ariveira@gmail.com","avatar":null},"body":"El Mon, 03 Nov 2008 18:39:15 +0100, Miquel van Smoorenburg escribió:\n\n> I'm trying to nail down a disk statistics issue that was introduced in\n> 2.6.27, while 2.6.26 was working OK. So I decided to use git bisect.\n> \n> However, sometimes I end up with a version before 2.6.26:\n> \n> $ cat .git/BISECT_LOG\n> git-bisect start\n> # good: [bce7f793daec3e65ec5c5705d2457b81fe7b5725] Linux 2.6.26\n> git-bisect good bce7f793daec3e65ec5c5705d2457b81fe7b5725 # bad:\n> [3fa8749e584b55f1180411ab1b51117190bac1e5] Linux 2.6.27 git-bisect bad\n> 3fa8749e584b55f1180411ab1b51117190bac1e5 # bad:\n> [dd9ca5d9be7eba99d685d733e23d5be7110e9556] USB: usb-serial: fix a sparse\n> warning about different signedness git-bisect bad\n> dd9ca5d9be7eba99d685d733e23d5be7110e9556 # good:\n> [84c3d4aaec3338201b449034beac41635866bddf] Merge commit 'origin/master'\n> git-bisect good 84c3d4aaec3338201b449034beac41635866bddf\n> \n> $ head -4 Makefile\n> VERSION = 2\n> PATCHLEVEL = 6\n> SUBLEVEL = 26\n> EXTRAVERSION = -rc8\n> \n> If at this point I do a 'git bisect good' I end up in a 2.6.26 branch,\n> which is good, but after a few bisects I end up at a version before\n> v2.6.26 (2.6.26-rc5) again, which should be impossible right ?\n\n Afaik it is not imposible with git you do not get a linear history\n\n\n> \n> Anyway - at the end I end up with a 'good' version that is\n> 2.6.26-rc<something> which is kind of useless. I know that version up to\n> 2.6.26 are good ...\n> \n> What am I doing wrong ?\n> \n> (git version 1.5.6.5 from debian/lenny)\n> \n> Mike.\n"},{"id":"94793","messageId":"alpine.LFD.2.00.0811031035390.3419@nehalem.linux-foundation.org","threadId":"16155","inReplyTo":"20081103173911.GA12363@xs4all.net","subject":"Re: git bisect v2.6.27 v2.6.26 problem/bug","fromName":"Linus Torvalds","fromEmail":"torvalds@linux-foundation.org","sentAt":"2008-11-03T18:43:09Z","receivedAt":"2008-11-03T18:43:09Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Mon, 3 Nov 2008, Miquel van Smoorenburg wrote:\n> \n> If at this point I do a 'git bisect good' I end up in a 2.6.26\n> branch, which is good, but after a few bisects I end up at\n> a version before v2.6.26 (2.6.26-rc5) again, which should be\n> impossible right ?\n\nNo, not at all.\n\nWhat is going on is that you are hitting commits that were not merged into \n2.6.26 (so they are _not_ in the \"good\" part), but they were _developed_ \nbefore it. So the kernel Makefile says \"v2.6.26-rc8\" (not quite 2.6.26 \nyet), but that's because the version in the Makefile ends up being a \nlinear explanation of what the nearest _earlier_ version was, but is not \nat all indicative of the much more complex non-linear development model.\n\nIOW, you have history that looks like\n\n\t- A -> B -> C->\n\t    \\     /\n\t     - D -\n\nAnd let's say that 'A' is v2.6.26-rc8, while 'B' is the final v2.6.26 \nrelease, and is your 'good', while 'C' is 2.6.27, and is your 'bad'.\n\nWhat does that make 'D' then?\n\nIt is clearly potentially bad, because it is _not_ in the good set (it was \nmerged after 2.6.26, and could very well be the source of your bug. But \nthink about what 'Makefile' must contain in 'D'. \n\nThe difference between linear history and non-linear history is very \nimportant, and \"git bisect\" very much is all about getting it right. It \ndoes't take a \"linear\" half-way point, it really does a _set_ operation, \nand it bisects the set of commits. And that set of commits is a DAG, not a \nlinear series.\n\n> Anyway - at the end I end up with a 'good' version that is\n> 2.6.26-rc<something> which is kind of useless. I know that\n> version up to 2.6.26 are good ...\n\nNot at all. It's not \"kind of useless\", it's very important.\n\n> What am I doing wrong ?\n\nYou're not doing anything wrong, you just didn't realize how non-linear \ndevelopment works.\n\n\t\t\tLinus\n"}]}