git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
* [PATCH] git-clean: Fix error message if clean.requireForce is not set.
@ 2007-11-12  8:27 Johannes Sixt
  2007-11-12  8:33 ` Pierre Habouzit
  2007-11-13  5:11 ` Junio C Hamano
  0 siblings, 2 replies; 5+ messages in thread
From: Johannes Sixt @ 2007-11-12  8:27 UTC (permalink / raw
  To: Junio C Hamano; +Cc: Git Mailing List

It was distracting to see this error message:

     clean.requireForce set and -n or -f not given; refusing to clean

even though clean.requireForce was not set at all. This patch distinguishes
the cases and gives a different message depending on whether the
configuration variable is not set or set to true.

While we are here, we also divert the error messages to stderr.

Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at>
---
  git-clean.sh |   24 +++++++++++++++---------
  1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/git-clean.sh b/git-clean.sh
index f4965b8..7138fae 100755
--- a/git-clean.sh
+++ b/git-clean.sh
@@ -25,10 +25,7 @@ rmrf="rm -rf --"
  rm_refuse="echo Not removing"
  echo1="echo"

-# requireForce used to default to false but now it defaults to true.
-# IOW, lack of explicit "clean.requireForce = false" is taken as
-# "clean.requireForce = true".
-disabled=$(git config --bool clean.requireForce || echo true)
+disabled=$(git config --bool clean.requireForce)

  while test $# != 0
  do
@@ -37,10 +34,10 @@ do
  		cleandir=1
  		;;
  	-f)
-		disabled=
+		disabled=false
  		;;
  	-n)
-		disabled=
+		disabled=false
  		rmf="echo Would remove"
  		rmrf="echo Would remove"
  		rm_refuse="echo Would not remove"
@@ -68,10 +65,19 @@ do
  	shift
  done

-if [ "$disabled" = true ]; then
-	echo "clean.requireForce set and -n or -f not given; refusing to clean"
+# requireForce used to default to false but now it defaults to true.
+# IOW, lack of explicit "clean.requireForce = false" is taken as
+# "clean.requireForce = true".
+case "$disabled" in
+"")
+	echo >&2 "clean.requireForce not set and -n or -f not given; refusing to clean"
  	exit 1
-fi
+	;;
+"true")
+	echo >&2 "clean.requireForce set and -n or -f not given; refusing to clean"
+	exit 1
+	;;
+esac

  case "$ignored,$ignoredonly" in
  	1,1) usage;;
-- 
1.5.3.5.1368.g3cabf

^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: Fix error message if clean.requireForce is not  set.
  2007-11-12  8:27 [PATCH] git-clean: Fix error message if clean.requireForce is not set Johannes Sixt
@ 2007-11-12  8:33 ` Pierre Habouzit
  2007-11-12  8:41   ` Johannes Sixt
  2007-11-13  5:11 ` Junio C Hamano
  1 sibling, 1 reply; 5+ messages in thread
From: Pierre Habouzit @ 2007-11-12  8:33 UTC (permalink / raw
  To: Johannes Sixt; +Cc: Junio C Hamano, Git Mailing List

[-- Attachment #1: Type: text/plain, Size: 631 bytes --]

On Mon, Nov 12, 2007 at 08:27:35AM +0000, Johannes Sixt wrote:
> It was distracting to see this error message:
> 
>     clean.requireForce set and -n or -f not given; refusing to clean
> 
> even though clean.requireForce was not set at all. This patch 
> distinguishes
> the cases and gives a different message depending on whether the
> configuration variable is not set or set to true.

  Note that your patch won't apply to next as is :)

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: Fix error message if clean.requireForce is not  set.
  2007-11-12  8:33 ` Pierre Habouzit
@ 2007-11-12  8:41   ` Johannes Sixt
  2007-11-12 12:24     ` Pierre Habouzit
  0 siblings, 1 reply; 5+ messages in thread
From: Johannes Sixt @ 2007-11-12  8:41 UTC (permalink / raw
  To: Pierre Habouzit; +Cc: Junio C Hamano, Git Mailing List, Shawn Bohrer

Pierre Habouzit schrieb:
> On Mon, Nov 12, 2007 at 08:27:35AM +0000, Johannes Sixt wrote:
>> It was distracting to see this error message:
>>
>>     clean.requireForce set and -n or -f not given; refusing to clean
>>
>> even though clean.requireForce was not set at all. This patch 
>> distinguishes
>> the cases and gives a different message depending on whether the
>> configuration variable is not set or set to true.
> 
>   Note that your patch won't apply to next as is :)

You mean because of the builtinification of git-clean? I was hoping that 
Shawn (Bohrer) is listening and will update his patch. ;) It has the same 
problem.

-- Hannes

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: Fix error message if clean.requireForce is  not  set.
  2007-11-12  8:41   ` Johannes Sixt
@ 2007-11-12 12:24     ` Pierre Habouzit
  0 siblings, 0 replies; 5+ messages in thread
From: Pierre Habouzit @ 2007-11-12 12:24 UTC (permalink / raw
  To: Johannes Sixt; +Cc: Junio C Hamano, Git Mailing List, Shawn Bohrer

[-- Attachment #1: Type: text/plain, Size: 1024 bytes --]

On Mon, Nov 12, 2007 at 08:41:03AM +0000, Johannes Sixt wrote:
> Pierre Habouzit schrieb:
> >On Mon, Nov 12, 2007 at 08:27:35AM +0000, Johannes Sixt wrote:
> >>It was distracting to see this error message:
> >>
> >>    clean.requireForce set and -n or -f not given; refusing to clean
> >>
> >>even though clean.requireForce was not set at all. This patch 
> >>distinguishes
> >>the cases and gives a different message depending on whether the
> >>configuration variable is not set or set to true.
> >  Note that your patch won't apply to next as is :)
> 
> You mean because of the builtinification of git-clean? I was hoping that 
> Shawn (Bohrer) is listening and will update his patch. ;) It has the same 
> problem.

  No, afaict the builtin git-clean isn't in next yet. Though the
git-rev-parse --parseopt-ification is :)

-- 
·O·  Pierre Habouzit
··O                                                madcoder@debian.org
OOO                                                http://www.madism.org

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH] git-clean: Fix error message if clean.requireForce is not set.
  2007-11-12  8:27 [PATCH] git-clean: Fix error message if clean.requireForce is not set Johannes Sixt
  2007-11-12  8:33 ` Pierre Habouzit
@ 2007-11-13  5:11 ` Junio C Hamano
  1 sibling, 0 replies; 5+ messages in thread
From: Junio C Hamano @ 2007-11-13  5:11 UTC (permalink / raw
  To: Johannes Sixt; +Cc: Git Mailing List, Shawn Bohrer

Johannes Sixt <j.sixt@viscovery.net> writes:

> It was distracting to see this error message:
>
>     clean.requireForce set and -n or -f not given; refusing to clean
>
> even though clean.requireForce was not set at all. This patch distinguishes
> the cases and gives a different message depending on whether the
> configuration variable is not set or set to true.

And this will be the counterpart for 'pu'...

---

 builtin-clean.c |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/builtin-clean.c b/builtin-clean.c
index 55658e7..01fb887 100644
--- a/builtin-clean.c
+++ b/builtin-clean.c
@@ -11,7 +11,7 @@
 #include "dir.h"
 #include "parse-options.h"
 
-static int force;
+static int force = -1; /* unset */
 
 static const char *const builtin_clean_usage[] = {
 	"git-clean [-d] [-f] [-n] [-q] [-x | -X] [--] <paths>...",
@@ -29,7 +29,7 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
 {
 	int j;
 	int show_only = 0, remove_directories = 0, quiet = 0, ignored = 0;
-	int ignored_only = 0, baselen = 0;
+	int ignored_only = 0, baselen = 0, config_set = 0;
 	struct strbuf directory;
 	struct dir_struct dir;
 	const char *path, *base;
@@ -49,6 +49,11 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
 	git_config(git_clean_config);
 	argc = parse_options(argc, argv, options, builtin_clean_usage, 0);
 
+	if (force < 0)
+		force = 0;
+	else
+		config_set = 1;
+
 	memset(&dir, 0, sizeof(dir));
 	if (ignored_only) {
 		dir.show_ignored =1;
@@ -59,7 +64,8 @@ int cmd_clean(int argc, const char **argv, const char *prefix)
 		die("-x and -X cannot be used together");
 
 	if (!show_only && !force)
-		die("clean.requireForce set and -n or -f not given; refusing to clean");
+		die("clean.requireForce%s set and -n or -f not given; "
+		    "refusing to clean", config_set ? "" : " not");
 
 	dir.show_other_directories = 1;
 

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2007-11-13  5:12 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-11-12  8:27 [PATCH] git-clean: Fix error message if clean.requireForce is not set Johannes Sixt
2007-11-12  8:33 ` Pierre Habouzit
2007-11-12  8:41   ` Johannes Sixt
2007-11-12 12:24     ` Pierre Habouzit
2007-11-13  5:11 ` Junio C Hamano

Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).