summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 7f55cf4)
raw | patch | inline | side by side (parent: 7f55cf4)
author | Junio C Hamano <gitster@pobox.com> | |
Wed, 14 Nov 2007 09:54:43 +0000 (01:54 -0800) | ||
committer | Junio C Hamano <gitster@pobox.com> | |
Wed, 14 Nov 2007 10:03:29 +0000 (02:03 -0800) |
git-clean did not honor core.excludesfile configuration
variable, although some other commands such as git-add and
git-status did. Fix this inconsistency.
Original report and patch from Shun'ichi Fuji. Rewritten by me
and bugs and tests are mine.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
variable, although some other commands such as git-add and
git-status did. Fix this inconsistency.
Original report and patch from Shun'ichi Fuji. Rewritten by me
and bugs and tests are mine.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-clean.sh | patch | blob | history | |
t/t7300-clean.sh | patch | blob | history |
diff --git a/git-clean.sh b/git-clean.sh
index 44917381863e27de6bedc91fa742eb0f8211a492..931d1aa4e4ed6cefb52c2dfe31aa5f059d0b2129 100755 (executable)
--- a/git-clean.sh
+++ b/git-clean.sh
if [ -z "$ignored" ]; then
excl="--exclude-per-directory=.gitignore"
+ excl_info= excludes_file=
if [ -f "$GIT_DIR/info/exclude" ]; then
excl_info="--exclude-from=$GIT_DIR/info/exclude"
fi
+ if cfg_excl=$(git config core.excludesfile) && test -f "$cfg_excl"
+ then
+ excludes_file="--exclude-from=$cfg_excl"
+ fi
if [ "$ignoredonly" ]; then
excl="$excl --ignored"
fi
fi
-git ls-files --others --directory $excl ${excl_info:+"$excl_info"} -- "$@" |
+git ls-files --others --directory \
+ $excl ${excl_info:+"$excl_info"} ${excludes_file:+"$excludes_file"} \
+ -- "$@" |
while read -r file; do
if [ -d "$file" -a ! -L "$file" ]; then
if [ -z "$cleandir" ]; then
diff --git a/t/t7300-clean.sh b/t/t7300-clean.sh
index eb0847afe9825f4af46065c2ee38282c44789bfb..0ed4ae282728a1701a8d67ae16572db14f1dee69 100755 (executable)
--- a/t/t7300-clean.sh
+++ b/t/t7300-clean.sh
'
+test_expect_success 'core.excludesfile' '
+
+ echo excludes >excludes &&
+ echo included >included &&
+ git config core.excludesfile excludes &&
+ output=$(git clean -n excludes included 2>&1) &&
+ expr "$output" : ".*included" >/dev/null &&
+ ! expr "$output" : ".*excludes" >/dev/null
+
+'
+
test_done