diff options
author | Christian Couder <chriscool@tuxfamily.org> | 2014-12-25 19:25:32 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2014-12-29 11:19:55 -0800 |
commit | 6bc02d5627358f6a264c5dbb159b5a9aeb44ebf4 (patch) | |
tree | 2c38713f1b7634d44a4335cbe1ac151a99187989 /git-bisect.sh | |
parent | c2e8e4b9da4d007b15faa2e3d407b2fd279f0572 (diff) | |
download | git-6bc02d5627358f6a264c5dbb159b5a9aeb44ebf4.tar.gz |
bisect: parse revs before passing them to check_expected_revs()
When running for example "git bisect bad HEAD" or
"git bisect good master", the parameter passed to
"git bisect (bad|good)" has to be parsed into a
commit hash before checking if it is the expected
commit or not.
We could do that in is_expected_rev() or in
check_expected_revs(), but it is already done in
bisect_state(). Let's just store the hash values
that result from this parsing, and then reuse
them after all the parsing is done.
This way we can also use a for loop over these
values to call bisect_write() on them, instead of
using eval.
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-bisect.sh')
-rwxr-xr-x | git-bisect.sh | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/git-bisect.sh b/git-bisect.sh index 6cda2b5a60..2fc07acb0f 100755 --- a/git-bisect.sh +++ b/git-bisect.sh @@ -237,15 +237,18 @@ bisect_state() { check_expected_revs "$rev" ;; 2,bad|*,good|*,skip) shift - eval='' + hash_list='' for rev in "$@" do sha=$(git rev-parse --verify "$rev^{commit}") || die "$(eval_gettext "Bad rev input: \$rev")" - eval="$eval bisect_write '$state' '$sha'; " + hash_list="$hash_list $sha" done - eval "$eval" - check_expected_revs "$@" ;; + for rev in $hash_list + do + bisect_write "$state" "$rev" + done + check_expected_revs $hash_list ;; *,bad) die "$(gettext "'git bisect bad' can take only one argument.")" ;; *) |