summaryrefslogtreecommitdiff
path: root/git-clean.sh
diff options
context:
space:
mode:
authorJosh Triplett <josh@freedesktop.org>2007-04-23 17:18:16 -0700
committerJunio C Hamano <junkio@cox.net>2007-04-23 22:13:50 -0700
commit2122591b3b5c6d93d3052a3151afcfa3146ede84 (patch)
tree59d0c98999b5021f2e9816d01fdc0d4efbdd079c /git-clean.sh
parentab69e89c7e95f309564c3967222bd39f0587a74c (diff)
downloadgit-2122591b3b5c6d93d3052a3151afcfa3146ede84.tar.gz
Add clean.requireForce option, and add -f option to git-clean to override it
Add a new configuration option clean.requireForce. If set, git-clean will refuse to run, unless forced with the new -f option, or not acting due to -n. Signed-off-by: Josh Triplett <josh@freedesktop.org> Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-clean.sh')
-rwxr-xr-xgit-clean.sh13
1 files changed, 12 insertions, 1 deletions
diff --git a/git-clean.sh b/git-clean.sh
index db177a7886..299309d971 100755
--- a/git-clean.sh
+++ b/git-clean.sh
@@ -3,9 +3,10 @@
# Copyright (c) 2005-2006 Pavel Roskin
#
-USAGE="[-d] [-n] [-q] [-x | -X] [--] <paths>..."
+USAGE="[-d] [-f] [-n] [-q] [-x | -X] [--] <paths>..."
LONG_USAGE='Clean untracked files from the working directory
-d remove directories as well
+ -f override clean.requireForce and clean anyway
-n don'\''t remove anything, just show what would be done
-q be quiet, only report errors
-x remove ignored files as well
@@ -19,6 +20,7 @@ require_work_tree
ignored=
ignoredonly=
cleandir=
+disabled="`git-config --bool clean.requireForce`"
rmf="rm -f --"
rmrf="rm -rf --"
rm_refuse="echo Not removing"
@@ -30,7 +32,11 @@ do
-d)
cleandir=1
;;
+ -f)
+ disabled=
+ ;;
-n)
+ disabled=
rmf="echo Would remove"
rmrf="echo Would remove"
rm_refuse="echo Would not remove"
@@ -58,6 +64,11 @@ do
shift
done
+if [ "$disabled" = true ]; then
+ echo "clean.requireForce set and -n or -f not given; refusing to clean"
+ exit 1
+fi
+
case "$ignored,$ignoredonly" in
1,1) usage;;
esac