• Jeff King's avatar
    bisect: make diff-tree output prettier · b02be8b9
    Jeff King authored
    After completing a bisection, we print out the commit we found using an
    internal version of diff-tree. The result is aesthetically lacking:
      - it shows a raw diff, which is generally less informative for human
        readers than "--stat --summary" (which we already decided was nice
        for humans in format-patch's output).
      - by not abbreviating hashes, the result is likely to wrap on most
        people's terminals
      - we don't use "-r", so if the commit touched files in a directory,
        you only get to see the top-level directory mentioned
      - we don't specify "--cc" or similar, so merges print nothing (not
        even the commit message!)
    Even though bisect might be driven by scripts, there's no reason to
    consider this part of the output as machine-readable (if anything, the
    initial "$hash is the first bad commit" might be parsed, but we won't
    touch that here). Let's make it prettier and more informative for a
    human reading the output.
    While we're tweaking the options, let's also switch to using the diff
    "ui" config. If we're accepting that this is human-readable output, then
    we should respect the user's options for how to display it.
    Note that we have to touch a few tests in t6030. These check bisection
    in a corrupted repository (it's missing a subtree). They didn't fail
    with the previous code, because it didn't actually recurse far enough in
    the diff to find the broken tree. But now we'll see the corruption and
    Adjusting the tests to expect the die() is the best fix. We still
    confirm that we're able to bisect within the broken repo. And we'll
    still print "$hash is the first bad commit" as usual before dying;
    showing that is a reasonable outcome in a corrupt repository (and was
    what might happen already, if the root tree was corrupt).
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
bisect.c 26.8 KB