There are already a lot of documentation about
git bisect, already. Sadly, few explain HOW to do it properly when you’re not used to development.
git and the git repository of OfflineIMAP, of course… ;-)
Clone the repository:
There are few simple commands to know.
- Start a session
- Mark as good
- Mark as bad
- Ignore a step
- Stop a session
Before starting, you should know what version works and what version does not. This is required to start the process.
From there, it’s you’re job to define if OfflineIMAP has the same issue or not.
Be care to mark the checkouted version as
bad ONLY if you’re sure about that.
A wrong declaration will put you in the wrong direction.
When in doubt, you must input the
git bisect skip command.
A failing run does NOT necessary mean you should declare it
In such case, you must check what’s the error and if it’s the one you are bisecting. Otherwise, you must input
git bisect skip command, too.
Understanding what is done
The process is fairly simple to understand. It just start in the middle of the patch series between the one marked as
good and the one marked as
bad. When a new
bad is declared, it take the new middle between both and continue.
It’s a bit more complex if the git history is not linear but we don’t have to care about the internals.