scripts: equality test '==' is not portable.
authorJunio C Hamano <junkio@cox.net>
Fri, 2 Sep 2005 17:53:15 +0000 (10:53 -0700)
committerJunio C Hamano <junkio@cox.net>
Fri, 2 Sep 2005 17:53:15 +0000 (10:53 -0700)
On NetBSD 3 we trigger an error:

    [: ==: unexpected operator

Double-equal is accepted by bash built-in '[' and bash(1) suggests
using '=' for strict POSIX compliance (test(1) from coreutils does not
mention '==').  Eradicate their uses everywhere.

[jc: Somebody with a pseudonym kindly sent a message to let
 me know about the problem privately; I do not have access to a NetBSD
 box.]

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-resolve-script
git-status-script
templates/hooks--update

index 7c0e3d8..000cbb8 100755 (executable)
@@ -36,19 +36,21 @@ if [ -z "$common" ]; then
        die "Unable to find common commit between" $merge $head
 fi
 
-if [ "$common" == "$merge" ]; then
+case "$common" in
+"$merge")
        echo "Already up-to-date. Yeeah!"
        dropheads
        exit 0
-fi
-if [ "$common" == "$head" ]; then
+       ;;
+"$head")
        echo "Updating from $head to $merge."
        git-read-tree -u -m $head $merge || exit 1
        echo $merge > "$GIT_DIR"/HEAD
        git-diff-tree -p $head $merge | git-apply --stat
        dropheads
        exit 0
-fi
+       ;;
+esac
 
 # Find an optimum merge base if there are more than one candidates.
 LF='
index 2b02954..ee8f706 100755 (executable)
@@ -77,9 +77,9 @@ then
 #'
 fi
 
-if [ "$committable" == "0" ]
-then
+case "$committable" in
+0)
        echo "nothing to commit"
        exit 1
-fi
+esac
 exit 0
index 0726975..3f38b82 100644 (file)
@@ -16,10 +16,14 @@ then
        git-rev-list --pretty "$3"
 else
        $base=$(git-merge-base "$2" "$3")
-       if [ $base == "$2" ]; then
+       case "$base" in
+       "$2")
                echo "New commits:"
-       else
+               ;;
+       *)
                echo "Rebased ref, commits from common ancestor:"
+               ;;
+       esac
 fi
 git-rev-list --pretty "$3" "^$base"
 fi |