git-clean: honor core.excludesfile
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>
This commit is contained in:
parent
7f55cf451c
commit
b57321f57b
@ -75,15 +75,22 @@ esac
|
|||||||
|
|
||||||
if [ -z "$ignored" ]; then
|
if [ -z "$ignored" ]; then
|
||||||
excl="--exclude-per-directory=.gitignore"
|
excl="--exclude-per-directory=.gitignore"
|
||||||
|
excl_info= excludes_file=
|
||||||
if [ -f "$GIT_DIR/info/exclude" ]; then
|
if [ -f "$GIT_DIR/info/exclude" ]; then
|
||||||
excl_info="--exclude-from=$GIT_DIR/info/exclude"
|
excl_info="--exclude-from=$GIT_DIR/info/exclude"
|
||||||
fi
|
fi
|
||||||
|
if cfg_excl=$(git config core.excludesfile) && test -f "$cfg_excl"
|
||||||
|
then
|
||||||
|
excludes_file="--exclude-from=$cfg_excl"
|
||||||
|
fi
|
||||||
if [ "$ignoredonly" ]; then
|
if [ "$ignoredonly" ]; then
|
||||||
excl="$excl --ignored"
|
excl="$excl --ignored"
|
||||||
fi
|
fi
|
||||||
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
|
while read -r file; do
|
||||||
if [ -d "$file" -a ! -L "$file" ]; then
|
if [ -d "$file" -a ! -L "$file" ]; then
|
||||||
if [ -z "$cleandir" ]; then
|
if [ -z "$cleandir" ]; then
|
||||||
|
@ -177,4 +177,15 @@ test_expect_success 'clean.requireForce and -f' '
|
|||||||
|
|
||||||
'
|
'
|
||||||
|
|
||||||
|
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
|
test_done
|
||||||
|
Loading…
Reference in New Issue
Block a user