Re: Re* git clean --exclude broken?
Pete Wyckoff <pw@padd.com> writes:
Show 29 quoted lines
>> diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt
>> index 974e04e..a7a18e3 100644
>> --- a/Documentation/git-clean.txt
>> +++ b/Documentation/git-clean.txt
>> @@ -47,9 +47,9 @@ OPTIONS
>>
>> -e <pattern>::
>> --exclude=<pattern>::
>> - Specify special exceptions to not be cleaned. Each <pattern> is
>> - the same form as in $GIT_DIR/info/excludes and this option can be
>> - given multiple times.
>> + In addition to what are found in .gitignore (per directory) and
>> + $GIT_DIR/info/exclude, also consider these patterns to be in the
>> + set of the ignore rules in effect.
>>
>> -x::
>> Don't use the ignore rules. This allows removing all untracked
>> diff --git a/builtin/clean.c b/builtin/clean.c
>> index 75697f7..3782718 100644
>> --- a/builtin/clean.c
>> +++ b/builtin/clean.c
>> @@ -76,6 +76,8 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
>>
>> if (ignored && ignored_only)
>> die(_("-x and -X cannot be used together"));
>> + if (ignored && exclude_list.nr)
>> + die(_("adding exclude with -e and ignoring it with -x is crazy"));
>
> This breaks one of my use cases for git clean.The description of '-x' needs to be also updated to reflect what it does.
How about this on top?
Documentation/git-clean.txt | 4 +++-
builtin/clean.c | 2 --
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/Documentation/git-clean.txt b/Documentation/git-clean.txt
index b49674f..79fb984 100644
--- a/Documentation/git-clean.txt
+++ b/Documentation/git-clean.txt
@@ -52,7 +52,9 @@ OPTIONS
set of the ignore rules in effect.
-x::
- Don't use the ignore rules. This allows removing all untracked
+ Don't use the standard ignore rules read from .gitignore (per
+ directory) and $GIT_DIR/info/exclude, but do still use the ignore
+ rules given with `-e` options. This allows removing all untracked
files, including build products. This can be used (possibly in
conjunction with 'git reset') to create a pristine
working directory to test a clean build.
diff --git a/builtin/clean.c b/builtin/clean.c
index 7fcbf87..0c7b3d0 100644
--- a/builtin/clean.c
+++ b/builtin/clean.c
@@ -76,8 +76,6 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
if (ignored && ignored_only)
die(_("-x and -X cannot be used together"));
- if (ignored && exclude_list.nr)
- die(_("adding exclude with -e and ignoring it with -x is crazy"));
if (!show_only && !force) {
if (config_set)