提交 b57321f5 编写于 作者: J Junio C Hamano

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: NJunio C Hamano <gitster@pobox.com>
上级 7f55cf45
......@@ -75,15 +75,22 @@ esac
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
......
......@@ -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
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册