git-svn: Allow for more argument types for commit (from..to)
[git.git] / git-add.sh
1 #!/bin/sh
2
3 USAGE='[-n] [-v] <file>...'
4 SUBDIRECTORY_OK='Yes'
5 . git-sh-setup
6
7 show_only=
8 verbose=
9 while : ; do
10   case "$1" in
11     -n)
12         show_only=true
13         ;;
14     -v)
15         verbose=--verbose
16         ;;
17     -*)
18         usage
19         ;;
20     *)
21         break
22         ;;
23   esac
24   shift
25 done
26
27 # Check misspelled pathspec
28 case "$#" in
29 0)      ;;
30 *)
31         git-ls-files --error-unmatch --others --cached -- "$@" >/dev/null || {
32                 echo >&2 "Maybe you misspelled it?"
33                 exit 1
34         }
35         ;;
36 esac
37
38 if test -f "$GIT_DIR/info/exclude"
39 then
40         git-ls-files -z \
41         --exclude-from="$GIT_DIR/info/exclude" \
42         --others --exclude-per-directory=.gitignore -- "$@"
43 else
44         git-ls-files -z \
45         --others --exclude-per-directory=.gitignore -- "$@"
46 fi |
47 case "$show_only" in
48 true)
49         xargs -0 echo ;;
50 *)
51         git-update-index --add $verbose -z --stdin ;;
52 esac