summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Junio C Hamano <gitster@pobox.com>2007-11-15 00:47:53 -0800
committerLibravatar Junio C Hamano <gitster@pobox.com>2007-11-16 01:35:58 -0800
commit0bee49c6abf18082a01f5d1a2106608456fb7d5a (patch)
treef25cfa06d9424c8a202483ae7abb337627792a7b
parentgit-bisect: use update-ref to mark good/bad commits (diff)
downloadtgif-0bee49c6abf18082a01f5d1a2106608456fb7d5a.tar.xz
git-bisect: modernize branch shuffling hack
When switching to a new rev, we first made "new-bisect" branch to point at the chosen commit, attempt to switch to it, and then finally renamed the new-bisect branch to bisect by hand when successful. This is so that we can catch checkout failure (your local modification may interfere with switching to the chosen version) without losing information on which commit the next attempt should be made. Rewrite it using a more modern form but without breaking the safety. Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rwxr-xr-xgit-bisect.sh5
1 files changed, 2 insertions, 3 deletions
diff --git a/git-bisect.sh b/git-bisect.sh
index 4b74a7bb42..dae8a8e980 100755
--- a/git-bisect.sh
+++ b/git-bisect.sh
@@ -316,10 +316,9 @@ bisect_next() {
exit_if_skipped_commits "$bisect_rev"
echo "Bisecting: $bisect_nr revisions left to test after this"
- echo "$bisect_rev" >"$GIT_DIR/refs/heads/new-bisect"
+ git branch -f new-bisect "$bisect_rev"
git checkout -q new-bisect || exit
- mv "$GIT_DIR/refs/heads/new-bisect" "$GIT_DIR/refs/heads/bisect" &&
- GIT_DIR="$GIT_DIR" git symbolic-ref HEAD refs/heads/bisect
+ git branch -M new-bisect bisect
git show-branch "$bisect_rev"
}