Bisect: refactor "bisect_write_*" functions.
authorChristian Couder <chriscool@tuxfamily.org>
Wed, 24 Oct 2007 05:01:05 +0000 (07:01 +0200)
committerJunio C Hamano <gitster@pobox.com>
Sat, 27 Oct 2007 06:27:24 +0000 (23:27 -0700)
Signed-off-by: Christian Couder <chriscool@tuxfamily.org>
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-bisect.sh

index cd461903020931d105121f5a7d6634eb586eedf6..82aa40433b9b8121b5675879794be025f8901c41 100755 (executable)
@@ -108,9 +108,9 @@ bisect_start() {
                }
                if [ $bad_seen -eq 0 ]; then
                    bad_seen=1
-                   bisect_write_bad "$rev"
+                   bisect_write 'bad' "$rev"
                else
-                   bisect_write_good "$rev"
+                   bisect_write 'good' "$rev"
                fi
                shift
                ;;
@@ -122,6 +122,18 @@ bisect_start() {
        bisect_auto_next
 }
 
+bisect_write() {
+       state="$1"
+       rev="$2"
+       case "$state" in
+               bad)            tag="$state" ;;
+               good|skip)      tag="$state"-"$rev" ;;
+               *)              die "Bad bisect_write argument: $state" ;;
+       esac
+       echo "$rev" >"$GIT_DIR/refs/bisect/$tag"
+       echo "# $state: "$(git show-branch $rev) >>"$GIT_DIR/BISECT_LOG"
+}
+
 bisect_bad() {
        bisect_autostart
        case "$#" in
@@ -132,17 +144,11 @@ bisect_bad() {
        *)
                usage ;;
        esac || exit
-       bisect_write_bad "$rev"
+       bisect_write 'bad' "$rev"
        echo "git-bisect bad $rev" >>"$GIT_DIR/BISECT_LOG"
        bisect_auto_next
 }
 
-bisect_write_bad() {
-       rev="$1"
-       echo "$rev" >"$GIT_DIR/refs/bisect/bad"
-       echo "# bad: "$(git show-branch $rev) >>"$GIT_DIR/BISECT_LOG"
-}
-
 bisect_good() {
        bisect_autostart
        case "$#" in
@@ -153,18 +159,12 @@ bisect_good() {
        for rev in $revs
        do
                rev=$(git rev-parse --verify "$rev^{commit}") || exit
-               bisect_write_good "$rev"
+               bisect_write 'good' "$rev"
                echo "git-bisect good $rev" >>"$GIT_DIR/BISECT_LOG"
        done
        bisect_auto_next
 }
 
-bisect_write_good() {
-       rev="$1"
-       echo "$rev" >"$GIT_DIR/refs/bisect/good-$rev"
-       echo "# good: "$(git show-branch $rev) >>"$GIT_DIR/BISECT_LOG"
-}
-
 bisect_skip() {
        bisect_autostart
        case "$#" in
@@ -175,18 +175,12 @@ bisect_skip() {
        for rev in $revs
        do
                rev=$(git rev-parse --verify "$rev^{commit}") || exit
-               bisect_write_skip "$rev"
+               bisect_write 'skip' "$rev"
                echo "git-bisect skip $rev" >>"$GIT_DIR/BISECT_LOG"
        done
        bisect_auto_next
 }
 
-bisect_write_skip() {
-       rev="$1"
-       echo "$rev" >"$GIT_DIR/refs/bisect/skip-$rev"
-       echo "# skip: "$(git show-branch $rev) >>"$GIT_DIR/BISECT_LOG"
-}
-
 bisect_next_check() {
        missing_good= missing_bad=
        git show-ref -q --verify refs/bisect/bad || missing_bad=t
@@ -395,15 +389,15 @@ bisect_replay () {
                        eval "$cmd"
                        ;;
                good)
-                       bisect_write_good "$rev"
+                       bisect_write 'good' "$rev"
                        echo "git-bisect good $rev" >>"$GIT_DIR/BISECT_LOG"
                        ;;
                bad)
-                       bisect_write_bad "$rev"
+                       bisect_write 'bad' "$rev"
                        echo "git-bisect bad $rev" >>"$GIT_DIR/BISECT_LOG"
                        ;;
                skip)
-                       bisect_write_skip "$rev"
+                       bisect_write 'skip' "$rev"
                        echo "git-bisect skip $rev" >>"$GIT_DIR/BISECT_LOG"
                        ;;
                *)