summaryrefslogtreecommitdiff
path: root/git-add.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-10-15 04:56:46 (GMT)
committerJunio C Hamano <junkio@cox.net>2005-10-18 00:41:55 (GMT)
commitcaf4f582b2bb4d5582540aa49d29749b2600cd03 (patch)
tree563d5d779fd36156ce5543f22f046907d5b78c9b /git-add.sh
parent22ddf7197958337a8c254122eae4efcd8a54098a (diff)
downloadgit-caf4f582b2bb4d5582540aa49d29749b2600cd03.zip
git-caf4f582b2bb4d5582540aa49d29749b2600cd03.tar.gz
git-caf4f582b2bb4d5582540aa49d29749b2600cd03.tar.bz2
Improve "git add" again.
This makes it possible to add paths that have funny characters (TAB and LF) in them, and makes adding many paths more efficient in general. New flag "--stdin" to update-index was initially added for different purpose, but it turns out to be a perfect match for feeding "ls-files --others -z" output to improve "git add". It also adds "--verbose" flag to update-index for use with "git add" command. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-add.sh')
-rwxr-xr-xgit-add.sh30
1 files changed, 17 insertions, 13 deletions
diff --git a/git-add.sh b/git-add.sh
index 3d364db..a8498c7 100755
--- a/git-add.sh
+++ b/git-add.sh
@@ -6,10 +6,9 @@ while : ; do
case "$1" in
-n)
show_only=true
- verbose=true
;;
-v)
- verbose=true
+ verbose=--verbose
;;
*)
break
@@ -19,14 +18,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