Fix cloning (memory corruption)
[git.git] / git-add.sh
index 7d91eeb..4bf4128 100755 (executable)
@@ -1,2 +1,36 @@
 #!/bin/sh
-git-update-index --add -- "$@"
+
+show_only=
+verbose=
+while : ; do
+  case "$1" in
+    -n)
+       show_only=true
+       ;;
+    -v)
+       verbose=--verbose
+       ;;
+    *)
+       break
+       ;;
+  esac
+  shift
+done
+
+GIT_DIR=$(git-rev-parse --git-dir) || exit
+
+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