When doing: eval "git rev-list --bisect-vars ..." | { while read line do echo "$line &&" done echo ':' } the result code comes from the last "echo ':'", not from running "git rev-list --bisect-vars ...". This means that we may miss errors from "git rev-list". To fix that, this patch gets rid of the pipes by redirecting the output of "git rev-list" into a file, and then reading from this file. Signed-off-by: Christian Couder <chriscool@xxxxxxxxxxxxx> --- git-bisect.sh | 16 ++++++++++------ 1 files changed, 10 insertions(+), 6 deletions(-) This applies to master. diff --git a/git-bisect.sh b/git-bisect.sh index e313bde..45214ca 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -284,19 +284,22 @@ filter_skipped() { _skip="$2" if [ -z "$_skip" ]; then - eval "$_eval" | { + eval "$_eval" > "$GIT_DIR/BISECT_EVAL_TMP" && + { while read line do echo "$line &&" - done + done < "$GIT_DIR/BISECT_EVAL_TMP" && echo ':' - } + } && + rm -f "$GIT_DIR/BISECT_EVAL_TMP" return fi # Let's parse the output of: # "git rev-list --bisect-vars --bisect-all ..." - eval "$_eval" | { + eval "$_eval" > "$GIT_DIR/BISECT_EVAL_TMP" && + { VARS= FOUND= TRIED= while read hash line do @@ -349,9 +352,10 @@ filter_skipped() { "line: '$line'" ;; esac - done + done < "$GIT_DIR/BISECT_EVAL_TMP" && echo ':' - } + } && + rm -f "$GIT_DIR/BISECT_EVAL_TMP" } exit_if_skipped_commits () { -- 1.6.2.1.404.gb0085.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