Code

bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped
authorChristian Couder <chriscool@tuxfamily.org>
Fri, 27 Feb 2009 06:31:22 +0000 (07:31 +0100)
committerJunio C Hamano <gitster@pobox.com>
Fri, 27 Feb 2009 08:57:28 +0000 (00:57 -0800)
commit1b249ffe8dff12849e3e215b46b245daecfadba0
tree9d80d8a688e454444ba557ccf32c17ee1b31b9ef
parent718258e256b74622aa55f5ee0cb9cff4cce6bf9f
bisect: fix quoting TRIED revs when "bad" commit is also "skip"ped

When the "bad" commit was also "skip"ped and when more than one
commit was skipped, the "filter_skipped" function would have
printed something like:

    bisect_rev=<hash1>|<hash2>

(where <hash1> and <hash2> are hexadecimal sha1 hashes)

and this would have been evaled later as piping "bisect_rev=<hash1>"
into "<hash2>", which would have failed.

So this patch makes the "filter_skipped" function properly quote
what it outputs, so that it will print something like:

bisect_rev='<hash1>|<hash2>'

which will be properly evaled later.  The caller was not stopping
properly because the scriptlet this function returned to be evaled
was not strung together with && and because of this, an error in
an earlier part of the output was simply ignored.

A test case is added to the test suite.

And while at it, we also initialize the VARS, FOUND and TRIED
variables, so that we protect ourselves from environment variables
the user may have with these names.

Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-bisect.sh
t/t6030-bisect-porcelain.sh