git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] git config: error when editing a repo config and not being in one
@ 2009-04-29 22:25 Felipe Contreras
  2009-04-29 22:44 ` Johannes Schindelin
  2009-04-29 23:01 ` Junio C Hamano
  0 siblings, 2 replies; 8+ messages in thread
From: Felipe Contreras @ 2009-04-29 22:25 UTC (permalink / raw)
  To: git; +Cc: Teemu Likonen, Junio C Hamano, Johannes Schindelin,
	Felipe Contreras

Let's throw an error on this specific case. If the user specifies the
config file, he must know what he is doing.

Teemu Likonen pointed this out.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 builtin-config.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/builtin-config.c b/builtin-config.c
index d8da72c..6e936e1 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
 	}
 	else if (actions == ACTION_EDIT) {
 		check_argc(argc, 0, 0);
+		if (!config_exclusive_filename && !is_inside_git_dir())
+			die("not in a git directory");
 		git_config(git_default_config, NULL);
 		launch_editor(config_exclusive_filename ?
 			      config_exclusive_filename : git_path("config"),
-- 
1.6.3.rc3.12.gb7937.dirty

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

* Re: [PATCH] git config: error when editing a repo config and not being in one
  2009-04-29 22:25 [PATCH] git config: error when editing a repo config and not being in one Felipe Contreras
@ 2009-04-29 22:44 ` Johannes Schindelin
  2009-04-29 22:49   ` Felipe Contreras
  2009-04-29 23:22   ` Junio C Hamano
  2009-04-29 23:01 ` Junio C Hamano
  1 sibling, 2 replies; 8+ messages in thread
From: Johannes Schindelin @ 2009-04-29 22:44 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Teemu Likonen, Junio C Hamano

Hi,

On Thu, 30 Apr 2009, Felipe Contreras wrote:

> diff --git a/builtin-config.c b/builtin-config.c
> index d8da72c..6e936e1 100644
> --- a/builtin-config.c
> +++ b/builtin-config.c
> @@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
>  	}
>  	else if (actions == ACTION_EDIT) {
>  		check_argc(argc, 0, 0);
> +		if (!config_exclusive_filename && !is_inside_git_dir())
> +			die("not in a git directory");

Why not use the nongit variable?

Ciao,
Dscho

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

* [PATCH] git config: error when editing a repo config and not being in one
  2009-04-29 22:44 ` Johannes Schindelin
@ 2009-04-29 22:49   ` Felipe Contreras
  2009-04-30  8:37     ` Johannes Schindelin
  2009-04-29 23:22   ` Junio C Hamano
  1 sibling, 1 reply; 8+ messages in thread
From: Felipe Contreras @ 2009-04-29 22:49 UTC (permalink / raw)
  To: git; +Cc: Teemu Likonen, Junio C Hamano, Johannes Schindelin,
	Felipe Contreras

Let's throw an error on this specific case. If the user specifies the
config file, he must know what he is doing.

Teemu Likonen pointed this out.

Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
---
 builtin-config.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)

diff --git a/builtin-config.c b/builtin-config.c
index d8da72c..a81bc8b 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
 	}
 	else if (actions == ACTION_EDIT) {
 		check_argc(argc, 0, 0);
+		if (!config_exclusive_filename && nongit)
+			die("not in a git directory");
 		git_config(git_default_config, NULL);
 		launch_editor(config_exclusive_filename ?
 			      config_exclusive_filename : git_path("config"),
-- 
1.6.3.rc3.13.g195b.dirty

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

* Re: [PATCH] git config: error when editing a repo config and not being in one
  2009-04-29 22:25 [PATCH] git config: error when editing a repo config and not being in one Felipe Contreras
  2009-04-29 22:44 ` Johannes Schindelin
@ 2009-04-29 23:01 ` Junio C Hamano
  1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2009-04-29 23:01 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Teemu Likonen, Johannes Schindelin

Felipe Contreras <felipe.contreras@gmail.com> writes:

> Let's throw an error on this specific case. If the user specifies the
> config file, he must know what he is doing.
>
> Teemu Likonen pointed this out.
>
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> ---
>  builtin-config.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/builtin-config.c b/builtin-config.c
> index d8da72c..6e936e1 100644
> --- a/builtin-config.c
> +++ b/builtin-config.c
> @@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
>  	}
>  	else if (actions == ACTION_EDIT) {
>  		check_argc(argc, 0, 0);
> +		if (!config_exclusive_filename && !is_inside_git_dir())
> +			die("not in a git directory");
>  		git_config(git_default_config, NULL);
>  		launch_editor(config_exclusive_filename ?
>  			      config_exclusive_filename : git_path("config"),

How could this be correct?

When you are inside a work tree controlled by a git repository, and you
want to edit the configuration file that belongs to the repository, I do
not think is_inside_git_dir() is true.

What you are trying to catch is if $GIT_DIR exists (not in the sense that
"is it a non-empty string?", but in the sense that "does it point at an
existing directory?"), I think.

So perhaps you want to say something like this instead?

No, I did not test it.

 builtin-config.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/builtin-config.c b/builtin-config.c
index d8da72c..a4bd516 100644
--- a/builtin-config.c
+++ b/builtin-config.c
@@ -390,6 +390,12 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
 	}
 	else if (actions == ACTION_EDIT) {
 		check_argc(argc, 0, 0);
+		if (!config_exclusive_filename) {
+			const char *git = get_git_dir();
+			struct stat sb;
+			if (!git || stat(git, &sb) || !S_ISDIR(sb.st_mode))
+				die("not in a git directory");
+		}
 		git_config(git_default_config, NULL);
 		launch_editor(config_exclusive_filename ?
 			      config_exclusive_filename : git_path("config"),

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

* Re: [PATCH] git config: error when editing a repo config and not being in one
  2009-04-29 22:44 ` Johannes Schindelin
  2009-04-29 22:49   ` Felipe Contreras
@ 2009-04-29 23:22   ` Junio C Hamano
  1 sibling, 0 replies; 8+ messages in thread
From: Junio C Hamano @ 2009-04-29 23:22 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: Felipe Contreras, git, Teemu Likonen

Johannes Schindelin <Johannes.Schindelin@gmx.de> writes:

> Hi,
>
> On Thu, 30 Apr 2009, Felipe Contreras wrote:
>
>> diff --git a/builtin-config.c b/builtin-config.c
>> index d8da72c..6e936e1 100644
>> --- a/builtin-config.c
>> +++ b/builtin-config.c
>> @@ -390,6 +390,8 @@ int cmd_config(int argc, const char **argv, const char *unused_prefix)
>>  	}
>>  	else if (actions == ACTION_EDIT) {
>>  		check_argc(argc, 0, 0);
>> +		if (!config_exclusive_filename && !is_inside_git_dir())
>> +			die("not in a git directory");
>
> Why not use the nongit variable?

Good; makes a lot more sense.

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

* Re: [PATCH] git config: error when editing a repo config and not being in one
  2009-04-29 22:49   ` Felipe Contreras
@ 2009-04-30  8:37     ` Johannes Schindelin
  2009-04-30  9:11       ` Felipe Contreras
  0 siblings, 1 reply; 8+ messages in thread
From: Johannes Schindelin @ 2009-04-30  8:37 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Teemu Likonen, Junio C Hamano

Hi,

On Thu, 30 Apr 2009, Felipe Contreras wrote:

> Let's throw an error on this specific case. If the user specifies the
> config file, he must know what he is doing.
> 
> Teemu Likonen pointed this out.
> 
> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>

I would have Acked it, but Junio already applied it ;-)

Ciao,
Dscho

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

* Re: [PATCH] git config: error when editing a repo config and not  being in one
  2009-04-30  8:37     ` Johannes Schindelin
@ 2009-04-30  9:11       ` Felipe Contreras
  2009-04-30  9:21         ` Johannes Schindelin
  0 siblings, 1 reply; 8+ messages in thread
From: Felipe Contreras @ 2009-04-30  9:11 UTC (permalink / raw)
  To: Johannes Schindelin; +Cc: git, Teemu Likonen, Junio C Hamano

On Thu, Apr 30, 2009 at 11:37 AM, Johannes Schindelin
<Johannes.Schindelin@gmx.de> wrote:
> Hi,
>
> On Thu, 30 Apr 2009, Felipe Contreras wrote:
>
>> Let's throw an error on this specific case. If the user specifies the
>> config file, he must know what he is doing.
>>
>> Teemu Likonen pointed this out.
>>
>> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
>
> I would have Acked it, but Junio already applied it ;-)

:)

Just for the record, where is people supposed to learn about 'nongit'?
Apparently it's not mentioned in the documentation.

-- 
Felipe Contreras

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

* Re: [PATCH] git config: error when editing a repo config and not  being in one
  2009-04-30  9:11       ` Felipe Contreras
@ 2009-04-30  9:21         ` Johannes Schindelin
  0 siblings, 0 replies; 8+ messages in thread
From: Johannes Schindelin @ 2009-04-30  9:21 UTC (permalink / raw)
  To: Felipe Contreras; +Cc: git, Teemu Likonen, Junio C Hamano

Hi,

On Thu, 30 Apr 2009, Felipe Contreras wrote:

> On Thu, Apr 30, 2009 at 11:37 AM, Johannes Schindelin
> <Johannes.Schindelin@gmx.de> wrote:
>
> > On Thu, 30 Apr 2009, Felipe Contreras wrote:
> >
> >> Let's throw an error on this specific case. If the user specifies the 
> >> config file, he must know what he is doing.
> >>
> >> Teemu Likonen pointed this out.
> >>
> >> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
> >
> > I would have Acked it, but Junio already applied it ;-)
> 
> :)
> 
> Just for the record, where is people supposed to learn about 'nongit'? 
> Apparently it's not mentioned in the documentation.

It's not about 'nongit'.  It is about setting up the git directory 
"gently", i.e you can ask for a setup _if possible_ using 
setup_git_directory_gently(), which will not fail if we're not in any 
repository.

To require a repository, call setup_git_directory().  This will die() if 
there is no repository.

As we already ask via _gently() in cmd_config(), it appeared natural to me 
to reuse that information rather than redoing the discovery.

Ciao,
Dscho

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

end of thread, other threads:[~2009-04-30  9:21 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-04-29 22:25 [PATCH] git config: error when editing a repo config and not being in one Felipe Contreras
2009-04-29 22:44 ` Johannes Schindelin
2009-04-29 22:49   ` Felipe Contreras
2009-04-30  8:37     ` Johannes Schindelin
2009-04-30  9:11       ` Felipe Contreras
2009-04-30  9:21         ` Johannes Schindelin
2009-04-29 23:22   ` Junio C Hamano
2009-04-29 23:01 ` Junio C Hamano

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 NNTP newsgroup(s).