Re: Re* git clean --exclude broken?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]