gitster@xxxxxxxxx wrote on Sat, 27 Aug 2011 23:27 -0700: > Pete Wyckoff <pw@xxxxxxxx> writes: > > >> 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) > This works, thanks. It is a confusing set of options, but we need them all. I couldn't think of a better way to describe how they interact. -- Pete -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html