Staging
v0.5.1
v0.5.1
Revision dff86e282fa38bf60d53b82cfa54f5f449563338 authored by Junio C Hamano on 28 March 2006, 00:08:29 UTC, committed by Junio C Hamano on 28 March 2006, 00:08:29 UTC
All of the things that were not in the "master" branch were either cooked long enough in "next" without causing problems (e.g. insanely fast rename detector or true built-in diff) or isolated in a specific subsystem (e.g. tar-tree and svnimport). So I am clearing the deck to prepare for a 1.3.0. Remaining wrinkles, if any, will be ironed in the "master" branch. Signed-off-by: Junio C Hamano <junkio@cox.net>
1 parent 65b5e41
git-rm.sh
#!/bin/sh
USAGE='[-f] [-n] [-v] [--] <file>...'
SUBDIRECTORY_OK='Yes'
. git-sh-setup
remove_files=
show_only=
verbose=
while : ; do
case "$1" in
-f)
remove_files=true
;;
-n)
show_only=true
;;
-v)
verbose=--verbose
;;
--)
shift; break
;;
-*)
usage
;;
*)
break
;;
esac
shift
done
# This is typo-proofing. If some paths match and some do not, we want
# to do nothing.
case "$#" in
0) ;;
*)
git-ls-files --error-unmatch -- "$@" >/dev/null || {
echo >&2 "Maybe you misspelled it?"
exit 1
}
;;
esac
if test -f "$GIT_DIR/info/exclude"
then
git-ls-files -z \
--exclude-from="$GIT_DIR/info/exclude" \
--exclude-per-directory=.gitignore -- "$@"
else
git-ls-files -z \
--exclude-per-directory=.gitignore -- "$@"
fi |
case "$show_only,$remove_files" in
true,*)
xargs -0 echo
;;
*,true)
xargs -0 sh -c "
while [ \$# -gt 0 ]; do
file=\$1; shift
rm -- \"\$file\" && git-update-index --remove $verbose \"\$file\"
done
" inline
;;
*)
git-update-index --force-remove $verbose -z --stdin
;;
esac
Computing file changes ...