Merge git://git.kernel.org/pub/scm/gitk/gitk
[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         shift
19         break
20         ;;
21     -*)
22         usage
23         ;;
24     *)
25         break
26         ;;
27   esac
28   shift
29 done
30
31 # Check misspelled pathspec
32 case "$#" in
33 0)      ;;
34 *)
35         git-ls-files --error-unmatch --others --cached -- "$@" >/dev/null || {
36                 echo >&2 "Maybe you misspelled it?"
37                 exit 1
38         }
39         ;;
40 esac
41
42 if test -f "$GIT_DIR/info/exclude"
43 then
44         git-ls-files -z \
45         --exclude-from="$GIT_DIR/info/exclude" \
46         --others --exclude-per-directory=.gitignore -- "$@"
47 else
48         git-ls-files -z \
49         --others --exclude-per-directory=.gitignore -- "$@"
50 fi |
51 case "$show_only" in
52 true)
53         xargs -0 echo ;;
54 *)
55         git-update-index --add $verbose -z --stdin ;;
56 esac