Prerequisites to git bisect:
- Know how to build dask from source
- Known good commit eg: Dask version 2.4
- Known bad commit eg: Dask version 2.5
- Have a script/test that fails with bad commit but works with good commit
- Ensure that the test indeed fails with dask built from source with bad commit and passes for dask built from source with good commit. (In the existing environment)
Git-bisect:
$ git bisect start
$ git bisect good <good-commit-hash>
$ git bisect bad <bad-commit-hash>
- Git automatically chooses a commit between the good and bad state.
- Build dask
- Run the test
- Two possibilities:
- If the test fails:
$ git bisect bad
- If the test passes:
$ git bisect good
- Keep repeating steps 5-7 till you narrow down the specific commit that broke things
$ git bisect reset
to stop git bisect.