"git checkout": add "-u" flag to update HEAD conditionally
authorLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 21 Jun 2005 16:59:26 +0000 (09:59 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Tue, 21 Jun 2005 16:59:26 +0000 (09:59 -0700)
And fix braino on testing "-f".

git-checkout-script

index e8e777f..dc1cffd 100755 (executable)
@@ -6,11 +6,14 @@ new=${new:-$old}
 args=($(git-rev-parse --no-revs "$@"))
 
 i=0
-force=0
+force=
+update=
 while [ $i -lt ${#args} ]; do
     case "${args[$i]}" in
        "-f")
                force=1;;
+       "-u")
+               update=1;;
        "")
                ;;
        *)
@@ -20,11 +23,11 @@ while [ $i -lt ${#args} ]; do
     i=$(($i+1))
 done
 
-if $force
+if [ "$force" ]
 then
     git-read-tree --reset $new &&
-       git-checkout-cache -q -f -u -a &&
-       echo $new > "$GIT_DIR/HEAD"
+       git-checkout-cache -q -f -u -a
 else
-    git-read-tree -m -u $old $new && echo $new > "$GIT_DIR/HEAD"
-fi
+    git-read-tree -m -u $old $new
+fi && [ "$update" ] && echo $new > "$GIT_DIR/HEAD"
+