[RFC 0/9] bisect: allow git bisect to be used with repos containing damaged trees.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Currently git bisect assumes that the respository to be undamaged. This limits the usefulness
of git bisect when working with damaged repositories.

This series introduces an option, --ignore-checkout-failure, which can be used with 
"git bisect start" to indicate that checkout failures should be tolerated for the life
of the (new) bisection process. This allows git bisect to be used on damaged repositories. In
particular, it allows git bisect to be used to locate commits containing damaged trees.

If the --ignore-checkout-failure option is specified, then if git checkout fails either 
at the start of the bisection process or later while probing a new trial commit, then the 
checkout failure will be noisily ignored and the HEAD reference will be updated to the 
intended commit. This may leave the working tree and index in an inconsistent state
w.r.t the HEAD commit.

"git bisect reset" uses the same logic to restore the original HEAD reference. This allows
"git bisect reset" to work in circumstances where it might otherwise fail (for example, if 
the current HEAD contains a damaged tree).

Jon Seymour (9):
  bisect: add tests to document expected behaviour in presence of
    broken trees.
  bisect: introduce a --ignore-checkout-failure option to
    bisect--helper.
  bisect: implement support for --ignore-checkout-failure option
  bisect: introduce a helper function to tolerate checkout failures.
  bisect: replace existing calls to git checkout with
    bisect_checkout_with_ignore
  bisect: enable --ignore-checkout-failure in the porcelain.
  bisect: better diagnostics, in case of mis-typed option.
  bisect: add tests for --ignore-checkout-failure option.
  bisect: add documentation for --ignore-checkout-failure option.

 Documentation/git-bisect.txt |   13 ++++-
 bisect.c                     |   18 ++++++-
 bisect.h                     |    2 +-
 builtin/bisect--helper.c     |    8 ++-
 git-bisect.sh                |   36 +++++++++++--
 t/t6030-bisect-porcelain.sh  |  119 ++++++++++++++++++++++++++++++++++++++++++
 6 files changed, 186 insertions(+), 10 deletions(-)

-- 
1.7.6.347.g96e0b.dirty

--
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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]