git-blame: Use the same tests for git-blame as for git-annotate
[gitweb.git] / git-add.sh
index b5fe46aa20865d6785390fd22406d32b00a77845..d6a4bc7d092f619d3c9dd20507c6659e13f82a3c 100755 (executable)
@@ -1,8 +1,8 @@
 #!/bin/sh
 
-usage() {
-    die "usage: git add [-n] [-v] <file>..."
-}
+USAGE='[-n] [-v] <file>...'
+SUBDIRECTORY_OK='Yes'
+. git-sh-setup
 
 show_only=
 verbose=
@@ -14,6 +14,10 @@ while : ; do
     -v)
        verbose=--verbose
        ;;
+    --)
+       shift
+       break
+       ;;
     -*)
        usage
        ;;
@@ -24,7 +28,16 @@ while : ; do
   shift
 done
 
-GIT_DIR=$(git-rev-parse --git-dir) || exit
+# Check misspelled pathspec
+case "$#" in
+0)     ;;
+*)
+       git-ls-files --error-unmatch --others --cached -- "$@" >/dev/null || {
+               echo >&2 "Maybe you misspelled it?"
+               exit 1
+       }
+       ;;
+esac
 
 if test -f "$GIT_DIR/info/exclude"
 then