diff options
author | Junio C Hamano <gitster@pobox.com> | 2007-11-14 01:54:43 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2007-11-14 02:03:29 -0800 |
commit | b57321f57b324320bdcf9f453ec4788da166f8f4 (patch) | |
tree | 8af9a77bbfd923fad2c2a4dcbdb6e9776c5a758e /git-clean.sh | |
parent | 7f55cf451c9e7c35cad2efcd0bb7bbd7c7ae29ac (diff) | |
download | git-b57321f57b324320bdcf9f453ec4788da166f8f4.tar.gz |
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>
Diffstat (limited to 'git-clean.sh')
-rwxr-xr-x | git-clean.sh | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/git-clean.sh b/git-clean.sh index 4491738186..931d1aa4e4 100755 --- a/git-clean.sh +++ b/git-clean.sh @@ -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 |