diff options
author | Junio C Hamano <junkio@cox.net> | 2005-10-30 18:06:39 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2005-10-30 18:06:39 -0800 |
commit | e634aec752642dcf86c3fc82025e43381d6768c2 (patch) | |
tree | a589b6756894d18c841ac61499e5d2c9beda36fd /git-add.sh | |
parent | a1c7a69047e88244ed321b5aa2a8bcbba5a869c2 (diff) | |
parent | 80e0c0ab91e1cf6a6315d0431bf6873ebbf8bef0 (diff) | |
download | git-e634aec752642dcf86c3fc82025e43381d6768c2.tar.gz |
GIT 0.99.9av0.99.9a
... to contain the RPM workaround.
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-add.sh')
-rwxr-xr-x | git-add.sh | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/git-add.sh b/git-add.sh index 3d364db251..b5fe46aa20 100755 --- a/git-add.sh +++ b/git-add.sh @@ -1,15 +1,21 @@ #!/bin/sh +usage() { + die "usage: git add [-n] [-v] <file>..." +} + show_only= verbose= while : ; do case "$1" in -n) show_only=true - verbose=true ;; -v) - verbose=true + verbose=--verbose + ;; + -*) + usage ;; *) break @@ -19,14 +25,19 @@ while : ; do done GIT_DIR=$(git-rev-parse --git-dir) || exit -global_exclude= -if [ -f "$GIT_DIR/info/exclude" ]; then - global_exclude="--exclude-from=$GIT_DIR/info/exclude" -fi -for i in $(git-ls-files --others \ - $global_exclude --exclude-per-directory=.gitignore \ - "$@") -do - [ "$verbose" ] && echo " $i" - [ "$show_only" ] || git-update-index --add -- "$i" || exit -done + +if test -f "$GIT_DIR/info/exclude" +then + git-ls-files -z \ + --exclude-from="$GIT_DIR/info/exclude" \ + --others --exclude-per-directory=.gitignore -- "$@" +else + git-ls-files -z \ + --others --exclude-per-directory=.gitignore -- "$@" +fi | +case "$show_only" in +true) + xargs -0 echo ;; +*) + git-update-index --add $verbose -z --stdin ;; +esac |