All of lore.kernel.org
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Felipe Contreras <felipe.contreras@gmail.com>
Cc: git@vger.kernel.org, Teemu Likonen <tlikonen@iki.fi>,
	Johannes Schindelin <johannes.schindelin@gmx.de>
Subject: Re: [PATCH] git config: error when editing a repo config and not being in one
Date: Wed, 29 Apr 2009 16:01:27 -0700	[thread overview]
Message-ID: <7vws935ak8.fsf@gitster.siamese.dyndns.org> (raw)
In-Reply-To: <1241043939-29013-1-git-send-email-felipe.contreras@gmail.com> (Felipe Contreras's message of "Thu, 30 Apr 2009 01:25:39 +0300")

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"),

      parent reply	other threads:[~2009-04-29 23:01 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
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 message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7vws935ak8.fsf@gitster.siamese.dyndns.org \
    --to=gitster@pobox.com \
    --cc=felipe.contreras@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=johannes.schindelin@gmx.de \
    --cc=tlikonen@iki.fi \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.