summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: ab69e89)
raw | patch | inline | side by side (parent: ab69e89)
author | Josh Triplett <josh@freedesktop.org> | |
Tue, 24 Apr 2007 00:18:16 +0000 (17:18 -0700) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Tue, 24 Apr 2007 05:13:50 +0000 (22:13 -0700) |
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>
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>
Documentation/config.txt | patch | blob | history | |
Documentation/git-clean.txt | patch | blob | history | |
contrib/completion/git-completion.bash | patch | blob | history | |
git-clean.sh | patch | blob | history |
index b13ff3a1bbedb70766f08b2e4d9b5048a4903d4d..e0aff5369f3b7ee3059095fc3531779e452e1db1 100644 (file)
--- a/Documentation/config.txt
+++ b/Documentation/config.txt
branch.<name>.merge to the desired branch, and use the special setting
`.` (a period) for branch.<name>.remote.
+clean.requireForce::
+ A boolean to make git-clean do nothing unless given -f or -n. Defaults
+ to false.
+
color.branch::
A boolean to enable/disable color in the output of
gitlink:git-branch[1]. May be set to `true` (or `always`),
index c61afbcdbac49ccbb7ee755e3fdb19d7d77225d0..5aff026eb489a84640ffef6c8deed5b9f89e2b06 100644 (file)
SYNOPSIS
--------
[verse]
-'git-clean' [-d] [-n] [-q] [-x | -X] [--] <paths>...
+'git-clean' [-d] [-f] [-n] [-q] [-x | -X] [--] <paths>...
DESCRIPTION
-----------
-d::
Remove untracked directories in addition to untracked files.
+-f::
+ If the git configuration specifies clean.forceRequire as true,
+ git-clean will refuse to run unless given -f or -n.
+
-n::
Don't actually remove anything, just show what would be done.
index 7c03403484f3a52c9588aa3bfc58dea4f394dabe..46356e8a274a20c4d01f43c60caf98c2e7e1b76a 100755 (executable)
core.legacyHeaders
core.packedGitWindowSize
core.packedGitLimit
+ clean.requireForce
color.branch
color.branch.current
color.branch.local
diff --git a/git-clean.sh b/git-clean.sh
index db177a7886b6407b4c4ad7b778a1ae99471355ac..299309d97169e6d9a52a8175dd0b8f6d54c5b369 100755 (executable)
--- a/git-clean.sh
+++ b/git-clean.sh
# 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
ignored=
ignoredonly=
cleandir=
+disabled="`git-config --bool clean.requireForce`"
rmf="rm -f --"
rmrf="rm -rf --"
rm_refuse="echo Not removing"
-d)
cleandir=1
;;
+ -f)
+ disabled=
+ ;;
-n)
+ disabled=
rmf="echo Would remove"
rmrf="echo Would remove"
rm_refuse="echo Would not remove"
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