Junio C Hamano | 215a7ad | 2005-09-08 00:26:23 | [diff] [blame] | 1 | #!/bin/sh |
Linus Torvalds | 37539fb | 2005-09-18 18:27:45 | [diff] [blame] | 2 | |
Chris Shoemaker | 918db54 | 2005-10-29 21:46:41 | [diff] [blame] | 3 | usage() { |
4 | die "usage: git add [-n] [-v] <file>..." | ||||
5 | } | ||||
6 | |||||
Linus Torvalds | 37539fb | 2005-09-18 18:27:45 | [diff] [blame] | 7 | show_only= |
8 | verbose= | ||||
9 | while : ; do | ||||
10 | case "$1" in | ||||
11 | -n) | ||||
12 | show_only=true | ||||
Linus Torvalds | 37539fb | 2005-09-18 18:27:45 | [diff] [blame] | 13 | ;; |
14 | -v) | ||||
Junio C Hamano | caf4f58 | 2005-10-15 04:56:46 | [diff] [blame] | 15 | verbose=--verbose |
Linus Torvalds | 37539fb | 2005-09-18 18:27:45 | [diff] [blame] | 16 | ;; |
Chris Shoemaker | 918db54 | 2005-10-29 21:46:41 | [diff] [blame] | 17 | -*) |
18 | usage | ||||
19 | ;; | ||||
Linus Torvalds | 37539fb | 2005-09-18 18:27:45 | [diff] [blame] | 20 | *) |
21 | break | ||||
22 | ;; | ||||
23 | esac | ||||
24 | shift | ||||
25 | done | ||||
26 | |||||
27 | GIT_DIR=$(git-rev-parse --git-dir) || exit | ||||
Junio C Hamano | caf4f58 | 2005-10-15 04:56:46 | [diff] [blame] | 28 | |
29 | if test -f "$GIT_DIR/info/exclude" | ||||
30 | then | ||||
31 | git-ls-files -z \ | ||||
32 | --exclude-from="$GIT_DIR/info/exclude" \ | ||||
Junio C Hamano | 4bfe119 | 2005-10-18 07:27:50 | [diff] [blame] | 33 | --others --exclude-per-directory=.gitignore -- "$@" |
Junio C Hamano | caf4f58 | 2005-10-15 04:56:46 | [diff] [blame] | 34 | else |
35 | git-ls-files -z \ | ||||
Junio C Hamano | 4bfe119 | 2005-10-18 07:27:50 | [diff] [blame] | 36 | --others --exclude-per-directory=.gitignore -- "$@" |
Junio C Hamano | caf4f58 | 2005-10-15 04:56:46 | [diff] [blame] | 37 | fi | |
38 | case "$show_only" in | ||||
39 | true) | ||||
40 | xargs -0 echo ;; | ||||
41 | *) | ||||
42 | git-update-index --add $verbose -z --stdin ;; | ||||
43 | esac |