public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Junio C Hamano <gitster@pobox•com>
To: Patrick Steinhardt <ps@pks•im>
Cc: git@vger•kernel.org, Jeff King <peff@peff•net>
Subject: Re: [PATCH v4 10/15] clone: die on config error in cmd_clone
Date: Tue, 02 Feb 2016 12:55:55 -0800	[thread overview]
Message-ID: <xmqqwpqmrfvo.fsf@gitster.mtv.corp.google.com> (raw)
In-Reply-To: <1454413916-31984-11-git-send-email-ps@pks.im> (Patrick Steinhardt's message of "Tue, 2 Feb 2016 12:51:51 +0100")

Patrick Steinhardt <ps@pks•im> writes:

> The clone command does not check for error codes returned by
> `git_config_set` functions. This may cause the user to end up
> with an inconsistent repository without any indication with what
> went wrong.
>
> Fix this problem by dying with an error message when we are
> unable to write the configuration files to disk.

When this happens, the junk_mode is still JUNK_LEAVE_NONE, so upon
hitting such an error, we'd remove everything and die.  And we
haven't wasted the effort for large object transfer yet.

Which all sounds sensible.

> Signed-off-by: Patrick Steinhardt <ps@pks•im>
> ---
>  builtin/clone.c | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/builtin/clone.c b/builtin/clone.c
> index 81e238f..f2a2f9a 100644
> --- a/builtin/clone.c
> +++ b/builtin/clone.c
> @@ -786,12 +786,12 @@ static void write_refspec_config(const char *src_ref_prefix,
>  		/* Configure the remote */
>  		if (value.len) {
>  			strbuf_addf(&key, "remote.%s.fetch", option_origin);
> -			git_config_set_multivar(key.buf, value.buf, "^$", 0);
> +			git_config_set_multivar_or_die(key.buf, value.buf, "^$", 0);
>  			strbuf_reset(&key);
>  
>  			if (option_mirror) {
>  				strbuf_addf(&key, "remote.%s.mirror", option_origin);
> -				git_config_set(key.buf, "true");
> +				git_config_set_or_die(key.buf, "true");
>  				strbuf_reset(&key);
>  			}
>  		}
> @@ -949,14 +949,14 @@ int cmd_clone(int argc, const char **argv, const char *prefix)
>  			src_ref_prefix = "refs/";
>  		strbuf_addstr(&branch_top, src_ref_prefix);
>  
> -		git_config_set("core.bare", "true");
> +		git_config_set_or_die("core.bare", "true");
>  	} else {
>  		strbuf_addf(&branch_top, "refs/remotes/%s/", option_origin);
>  	}
>  
>  	strbuf_addf(&value, "+%s*:%s*", src_ref_prefix, branch_top.buf);
>  	strbuf_addf(&key, "remote.%s.url", option_origin);
> -	git_config_set(key.buf, repo);
> +	git_config_set_or_die(key.buf, repo);
>  	strbuf_reset(&key);
>  
>  	if (option_reference.nr)

  reply	other threads:[~2016-02-02 20:56 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-02-02 11:51 [PATCH v4 00/15] config: make git_config_set die on failure Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 01/15] config: introduce set_or_die wrappers Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 02/15] branch: die on error in setting up tracking branch Patrick Steinhardt
2016-02-02 20:49   ` Junio C Hamano
2016-02-08 13:42     ` Patrick Steinhardt
2016-02-08 14:03       ` Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 03/15] branch: die on config error when unsetting upstream Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 04/15] branch: die on config error when editing branch description Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 05/15] submodule: die on config error when linking modules Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 06/15] submodule--helper: die on config error when cloning module Patrick Steinhardt
2016-02-02 18:45   ` Eric Sunshine
2016-02-08 14:05     ` Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 07/15] remote: die on config error when setting URL Patrick Steinhardt
2016-02-02 12:00   ` Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 08/15] remote: die on config error when setting/adding branches Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 09/15] remote: die on config error when manipulating remotes Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 10/15] clone: die on config error in cmd_clone Patrick Steinhardt
2016-02-02 20:55   ` Junio C Hamano [this message]
2016-02-02 11:51 ` [PATCH v4 11/15] init-db: die on config errors when initializing empty repo Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 12/15] sequencer: die on config error when saving replay opts Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 13/15] compat: die when unable to set core.precomposeunicode Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 14/15] config: rename git_config_set to git_config_set_gently Patrick Steinhardt
2016-02-02 11:51 ` [PATCH v4 15/15] config: rename git_config_set_or_die to git_config_set Patrick Steinhardt
2016-02-02 18:52 ` [PATCH v4 00/15] config: make git_config_set die on failure Stefan Beller
2016-02-02 20:58 ` Junio C Hamano
2016-02-04  8:56   ` Patrick Steinhardt

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=xmqqwpqmrfvo.fsf@gitster.mtv.corp.google.com \
    --to=gitster@pobox$(echo .)com \
    --cc=git@vger$(echo .)kernel.org \
    --cc=peff@peff$(echo .)net \
    --cc=ps@pks$(echo .)im \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox