For some bisection tasks, checking out the commit at each stage of the bisection process is unecessary or undesirable. This series adds support for a --no-checkout[=<ref>] option to git-bisect. If specified, this option causes git-bisect to update the specified reference at each stage of the bisection process instead of checking out the commit at that point. If <ref> is not specified, HEAD is assumed. One application of this option is to find, within a partially damaged repository, the earliest commit such that the graph of commits, trees and blobs reachable from the parents of that commit is completely reachable. For example: git bisect start HEAD <known-good-commit> [ <damaged-or-missing-commit> ... ] git bisect run eval ' git rev-list --objects HEAD > /dev/null && git rev-list --objects HEAD | git pack-objects --stdout >/dev/null || false' Assuming this git bisect run completes successfully, bisect/bad will refer to the first commit whose parents have completely reachable graphs. This series is a reworking of an earlier series "bisect: allow git bisect to be used with repos containing damaged trees." that incorporates Junio's suggestion to add a --no-checkout option instead of an --ignore-checkout-failure option. Jon Seymour (5): bisect: add tests to document expected behaviour in presence of broken trees. bisect: introduce support for --no-checkout=<ref> option. bisect: introduce --no-checkout[=<ref>] support into porcelain. bisect: add tests for the --no-checkout option. bisect: add documentation for --no-checkout[=<ref>] option. Documentation/git-bisect.txt | 26 ++++++++- bisect.c | 26 +++++++- bisect.h | 2 +- builtin/bisect--helper.c | 7 ++- git-bisect.sh | 45 ++++++++++++-- t/t6030-bisect-porcelain.sh | 132 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 223 insertions(+), 15 deletions(-) -- 1.7.6.387.g991c2 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html