The hotfix application example uses `git merge --no-commit` to apply temporary changes to the working tree during a bisect operation. In some situations this can be a fast-forward and `merge` will apply the hotfix branch's commits regardless of `--no-commit` (as documented in the `git merge` manual). In the pathological case this will make a `git bisect run` invocation to loop indefinitely between the first bisect step and the fast-forwarded post-merge HEAD. Add `--no-ff` to the merge command to avoid this issue, and make a note of it for the reader. Signed-off-by: Mihail Atanassov <m.atanassov92@xxxxxxxxx> --- Documentation/git-bisect.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Documentation/git-bisect.txt b/Documentation/git-bisect.txt index 4b45d837a7..58b5585874 100644 --- a/Documentation/git-bisect.txt +++ b/Documentation/git-bisect.txt @@ -412,8 +412,10 @@ $ cat ~/test.sh #!/bin/sh # tweak the working tree by merging the hot-fix branch -# and then attempt a build -if git merge --no-commit hot-fix && +# and then attempt a build. Note the `--no-ff`: `git merge` +# will otherwise still apply commits if the current HEAD can be +# fast-forwarded to the hot-fix branch. +if git merge --no-commit --no-ff hot-fix && make then # run project specific test and report its status -- 2.16.4