$ git bisect log git bisect start # bad: [6cf8255912c36fec6f87f62513034d0818f61390] bpo-34217: Use lowercase header for Windows (GH-8453) git bisect bad 6cf8255912c36fec6f87f62513034d0818f61390 # good: [ef057bfb06cae0718e6d708061649d2e3983e2ef] bpo-33109: Remove now-obsolete What's New entry for bpo-26510. (GH-7609) git bisect good ef057bfb06cae0718e6d708061649d2e3983e2ef # good: [d824ca7f4df9b5f77cf02490b0e98c2408e21fee] bpo-34006: Revert line length limit for Windows help docs (GH-8051) git bisect good d824ca7f4df9b5f77cf02490b0e98c2408e21fee # good: [5fe7c98a54d127759cfce323fab831008c945964] bpo-34009: Expand on platform support changes (GH-8022) git bisect good 5fe7c98a54d127759cfce323fab831008c945964 # good: [cb5f3fdb9d353a572dd22fb50a110e52d5bb81b1] Remove extra parentheses in output formatting tutorial (GH-8350) git bisect good cb5f3fdb9d353a572dd22fb50a110e52d5bb81b1 # bad: [8b96eed0dd13d9dec02421cacfa021d457ba2d80] AppVeyor: build Python in 64-bit mode (GH-8363) git bisect bad 8b96eed0dd13d9dec02421cacfa021d457ba2d80 # bad: [56868f940e0cc0b35d33c0070107ff3bed2d8766] bpo-34126: Fix crashes while profiling invalid calls. (GH-8300) git bisect bad 56868f940e0cc0b35d33c0070107ff3bed2d8766 # good: [c884616390f990a58fe337376904530a48a0e833] Fix Windows compiler warning in tokenize.c (GH-8359) git bisect good c884616390f990a58fe337376904530a48a0e833 # good: [06ca3f0c09d017b9d741553818459cca2d5da587] bpo-34136: Make test_do_not_recreate_annotations more reliable. (GH-8364) git bisect good 06ca3f0c09d017b9d741553818459cca2d5da587 # good: [a692efe4733f98831cb51a9683877b152f754d14] bpo-34166: Fix warnings in Tools/msgfmt.py. (GH-8367) git bisect good a692efe4733f98831cb51a9683877b152f754d14 # first bad commit: [56868f940e0cc0b35d33c0070107ff3bed2d8766] bpo-34126: Fix crashes while profiling invalid calls. (GH-8300) $ cat bisect_script.sh # Used with "git bisect run ./bisect_script.sh" ./configure || exit 125 make clean || exit 125 # make clinic || exit 125 make || exit 125 make test TESTOPTS="-v test_issue36" $ cat Lib/test/test_issue36.py import unittest import sys def trace(frame, event, arg): return trace DESCRIPT_REQUIRES_TYPE_RE = r"descriptor '\w+' requires a 'set' object but received a 'int'" DO_SET_TRACE = True class SetAddIntRegexpTests(unittest.TestCase): def test_assertRaisesRegex(self): if DO_SET_TRACE: sys.settrace(trace) self.assertRaisesRegex(TypeError, DESCRIPT_REQUIRES_TYPE_RE, set.add, 0) def test_assertRaisesRegex_contextman(self): if DO_SET_TRACE: sys.settrace(trace) with self.assertRaisesRegex(TypeError, DESCRIPT_REQUIRES_TYPE_RE): set.add(0) if __name__ == '__main__': unittest.main() ============================================================================================================================================================================ ============================================================================================================================================================================ ============================================================================================================================================================================ ============================================================================================================================================================================ $ git bisect log git bisect start # bad: [09fbcd6085e18b534fd4161844ff39f77eb4a082] bpo-35942: Improve the error message if __fspath__ returns invalid types in path_converter (GH-11831) git bisect bad 09fbcd6085e18b534fd4161844ff39f77eb4a082 # good: [56868f940e0cc0b35d33c0070107ff3bed2d8766] bpo-34126: Fix crashes while profiling invalid calls. (GH-8300) git bisect good 56868f940e0cc0b35d33c0070107ff3bed2d8766 # bad: [569d12f44847f18fc5b514b24e8ab901b0d96895] Fix yet one error in checking Tcl version. (GH-10189) git bisect bad 569d12f44847f18fc5b514b24e8ab901b0d96895 # good: [73820a60cc3c990abb351540ca27bf7689bce8ac] Fix compiler warning with a type cast (GH-9300) git bisect good 73820a60cc3c990abb351540ca27bf7689bce8ac # bad: [a8d5e2f255f1a20fc8af7dc16a7cb708e014952a] Use double quote instead of backtick to clarify Ellipsis constant (GH-9754) git bisect bad a8d5e2f255f1a20fc8af7dc16a7cb708e014952a # bad: [24b447edf204a674f9e164ea6d553562c21de1a4] Use in-memory streams instead of NamedTemporaryFile. (GH-9508) git bisect bad 24b447edf204a674f9e164ea6d553562c21de1a4 # good: [b042cf10c6084d14279c55a7e0d2d7595ff4e694] bpo-33649: Fix markup; add another note that asyncio.run is 3.7+ (GH-9389) git bisect good b042cf10c6084d14279c55a7e0d2d7595ff4e694 # bad: [e247b46cba4f4d32ea96a15dbc36d73265171106] bpo-33649: More improvements (GH-9439) git bisect bad e247b46cba4f4d32ea96a15dbc36d73265171106 # good: [b3b8cb419e496629873fa7dda82a01863f58617a] run autoconf (GH-9411) git bisect good b3b8cb419e496629873fa7dda82a01863f58617a # bad: [06e7608207daab9fb82d13ccf2d3664535442f11] Revert "bpo-34589: Add -X coerce_c_locale command line option (GH-9378)" (GH-9430) git bisect bad 06e7608207daab9fb82d13ccf2d3664535442f11 # bad: [3705b9862025705ea60041a9e310f99a164db722] bpo-34712: Fix style in examples in "Input and Output" (GH-9361) git bisect bad 3705b9862025705ea60041a9e310f99a164db722 # bad: [e89de7398718f6e68848b6340830aeb90b7d582c] bpo-34125: Enable profiling of method_descriptor in all cases (GH-8416) git bisect bad e89de7398718f6e68848b6340830aeb90b7d582c # first bad commit: [e89de7398718f6e68848b6340830aeb90b7d582c] bpo-34125: Enable profiling of method_descriptor in all cases (GH-8416) $ cat bisect_script.sh # Used with "git bisect run ./bisect_script.sh" ./configure || exit 125 make clean || exit 125 # make clinic || exit 125 make || exit 125 make test TESTOPTS="-v test_issue36" $ cat Lib/test/test_issue36.py """Unit tests for get_suggestions_for_exception.""" import unittest import sys def trace(frame, event, arg): return trace DESCRIPT_REQUIRES_TYPE_RE = r"descriptor '\w+' requires a 'set' object but received a 'int'" DO_SET_TRACE = True class SetAddIntRegexpTests(unittest.TestCase): def test_assertRaisesRegex(self): if DO_SET_TRACE: sys.settrace(trace) self.assertRaisesRegex(TypeError, DESCRIPT_REQUIRES_TYPE_RE, set.add, 0) if False: def test_assertRaisesRegex_contextman(self): if DO_SET_TRACE: sys.settrace(trace) with self.assertRaisesRegex(TypeError, DESCRIPT_REQUIRES_TYPE_RE): set.add(0) if __name__ == '__main__': unittest.main()