]> git.ipfire.org Git - thirdparty/git.git/blob - git-add.sh
git-merge-tree: generalize the "traverse <n> trees in sync" functionality
[thirdparty/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