Support receiving server capabilities
[git.git] / git.sh
diff --git a/git.sh b/git.sh
index ea710aa..94940ae 100755 (executable)
--- a/git.sh
+++ b/git.sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 cmd=
-path=$(dirname $0)
+path=$(dirname "$0")
 case "$#" in
 0)     ;;
 *)     cmd="$1"
@@ -11,26 +11,66 @@ case "$#" in
                echo "git version @@GIT_VERSION@@"
                exit 0 ;;
        esac
-
-       test -x $path/git-$cmd && exec $path/git-$cmd "$@" ;;
-
-       # In case we're running on Cygwin...
-       test -x $path/git-$cmd.exe && exec $path/git-$cmd.exe "$@" ;;
+       
+       test -x "$path/git-$cmd" && exec "$path/git-$cmd" "$@"
+       
+       case '@@X@@' in
+           '')
+               ;;
+           *)
+               test -x "$path/git-$cmd@@X@@" &&
+               exec "$path/git-$cmd@@X@@" "$@"
+               ;;
+       esac
+       ;;
 esac
 
 echo "Usage: git COMMAND [OPTIONS] [TARGET]"
 if [ -n "$cmd" ]; then
-    echo " git command '$cmd' not found: commands are:"
-else
-    echo " git commands are:"
+    echo "git command '$cmd' not found."
 fi
+echo "git commands are:"
 
-cat <<\EOF
-    add apply archimport bisect branch checkout cherry clone
-    commit count-objects cvsimport diff fetch format-patch
-    fsck-cache get-tar-commit-id init-db log ls-remote octopus
-    pack-objects parse-remote patch-id prune pull push rebase
-    relink rename repack request-pull reset resolve revert
-    send-email shortlog show-branch status tag verify-tag
-    whatchanged
+fmt <<\EOF | sed -e 's/^/    /'
+add
+apply
+archimport
+bisect
+branch
+checkout
+cherry
+clone
+commit
+count-objects
+cvsimport
+diff
+fetch
+format-patch
+fsck-objects
+get-tar-commit-id
+init-db
+log
+ls-remote
+octopus
+pack-objects
+parse-remote
+patch-id
+prune
+pull
+push
+rebase
+relink
+rename
+repack
+request-pull
+reset
+resolve
+revert
+send-email
+shortlog
+show-branch
+status
+tag
+verify-tag
+whatchanged
 EOF