git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Junio C Hamano <gitster@pobox.com>
To: Atharva Raykar <raykar.ath@gmail.com>
Cc: git@vger.kernel.org, "Emily Shaffer" <emilyshaffer@google.com>,
	"Jonathan Nieder" <jrnieder@gmail.com>,
	"Christian Couder" <christian.couder@gmail.com>,
	"Shourya Shukla" <periperidip@gmail.com>,
	"Kaartic Sivaraam" <kaartic.sivaraam@gmail.com>,
	"Eric Sunshine" <sunshine@sunshineco.com>,
	"Prathamesh Chavan" <pc44800@gmail.com>,
	"Đoàn Trần Công Danh" <congdanhqx@gmail.com>,
	"Rafael Silva" <rafaeloliveira.cs@gmail.com>,
	"Shourya Shukla" <shouryashukla.oo@gmail.com>
Subject: Re: [GSoC] [PATCH 3/3] submodule--helper: introduce add-clone subcommand
Date: Wed, 07 Jul 2021 12:57:28 -0700	[thread overview]
Message-ID: <xmqqr1g9ew2f.fsf@gitster.g> (raw)
In-Reply-To: <20210706181936.34087-4-raykar.ath@gmail.com> (Atharva Raykar's message of "Tue, 6 Jul 2021 23:49:36 +0530")

Atharva Raykar <raykar.ath@gmail.com> writes:

> Let's add a new "add-clone" subcommand to `git submodule--helper` with
> the goal of converting part of the shell code in git-submodule.sh
> related to `git submodule add` into C code. This new subcommand clones
> the repository that is to be added, and checks out to the appropriate
> branch.
>
> This is meant to be a faithful conversion that leaves the behaviour of
> 'submodule add' unchanged.

Makes sense.

> The 'die' that is used in git-submodule.sh is not the same as the
> 'die()' in C--the latter prefixes with 'fatal:' and exits with an error
> code of 128, while the shell die exits with code 1.
>
> Introduce a custom die routine, that can be used by converted
> subcommands to emulate the shell 'die'.

I suspect that installing this with set_die_routine() might be going
too far.  If some of the lower-level helper routines we call from
here have to die (e.g. our call results in xmalloc() getting called
and we run out of memory), die() called there will also end up
calling our submodule_die(), not just new calls to die() you are
adding in this patch.  Calling submodule_die() directly from the
code you convert from the scripted version where we used to call die
of the scripted version would be fine, though.

I suspect that it would be OK to use the standard die() instead,
with the minimum adjustment as needed, namely, we may have to

 * Adjust the messages the scripted version of the caller gave to
   the scripted version of die, if needed (e.g. if the scripted
   version added "fatal:" prefix itself to compensate for the lack
   of it in the scripted "die", we can drop the prefix and call the
   standard die());

 * Adjust the tests if they care about the differences between
   exiting 128 and 1.

> +static NORETURN void submodule_die(const char *err, va_list params)
> +{
> +	vfprintf(stderr, err, params);
> +	fputc('\n', stderr);
> +	fflush(stderr);
> +	exit(1);
> +}


Other than that, all three patches looked quite reasonable.

Thanks.

  reply	other threads:[~2021-07-07 19:57 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-07-06 18:19 [GSoC] [PATCH 0/3] submodule add: partial conversion to C Atharva Raykar
2021-07-06 18:19 ` [GSoC] [PATCH 1/3] t7400: test failure to add submodule in tracked path Atharva Raykar
2021-07-06 18:19 ` [GSoC] [PATCH 2/3] submodule--helper: refactor module_clone() Atharva Raykar
2021-07-06 18:19 ` [GSoC] [PATCH 3/3] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-07-07 19:57   ` Junio C Hamano [this message]
2021-07-08  6:45     ` Atharva Raykar
2021-07-08  9:55 ` [GSoC] [PATCH v2 0/4] submodule add: partial conversion to C Atharva Raykar
2021-07-08  9:55   ` [GSoC] [PATCH v2 1/4] t7400: test failure to add submodule in tracked path Atharva Raykar
2021-07-08  9:55   ` [GSoC] [PATCH v2 2/4] submodule: prefix die messages with 'fatal' Atharva Raykar
2021-07-08 15:17     ` Junio C Hamano
2021-07-09 14:52     ` Đoàn Trần Công Danh
2021-07-10  7:52       ` Atharva Raykar
2021-07-10 12:04         ` Kaartic Sivaraam
2021-07-08  9:55   ` [GSoC] [PATCH v2 3/4] submodule--helper: refactor module_clone() Atharva Raykar
2021-07-08  9:55   ` [GSoC] [PATCH v2 4/4] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-07-10  7:47   ` [GSoC] [PATCH v3 0/4] submodule add: partial conversion to C Atharva Raykar
2021-07-10  7:47     ` [GSoC] [PATCH v3 1/4] t7400: test failure to add submodule in tracked path Atharva Raykar
2021-07-10  7:47     ` [GSoC] [PATCH v3 2/4] submodule: prefix die messages with 'fatal' Atharva Raykar
2021-07-10  7:48     ` [GSoC] [PATCH v3 3/4] submodule--helper: refactor module_clone() Atharva Raykar
2021-07-10  7:48     ` [GSoC] [PATCH v3 4/4] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-07-23 11:12       ` [PATCH] submodule: drop unused sm_name parameter from show_fetch_remotes() Jeff King
2021-07-23 17:12         ` Atharva Raykar
2021-07-26 19:03           ` Junio C Hamano
2021-08-05 19:28       ` [PATCH] submodule--helper: fix incorrect newlines in an error message Kaartic Sivaraam
2021-08-06  6:29         ` Atharva Raykar
2021-08-06 19:07           ` Kaartic Sivaraam
2021-09-18 19:31         ` [PATCH v2 0/1] submodule: corret an incorrectly formatted " Kaartic Sivaraam
2021-09-18 19:31           ` [PATCH v2 1/1] submodule--helper: fix incorrect newlines in an " Kaartic Sivaraam
2021-09-20 18:09             ` Junio C Hamano
2021-09-21 16:52               ` Atharva Raykar
2021-09-21 16:47             ` Atharva Raykar
2021-10-23 12:57               ` [PATCH v3 0/1] submodule: correct an incorrectly formatted " Kaartic Sivaraam
2021-10-23 12:57                 ` [PATCH v3 1/1] submodule--helper: fix incorrect newlines in an " Kaartic Sivaraam
2021-10-24  6:05                 ` [PATCH v3 0/1] submodule: correct an incorrectly formatted " Junio C Hamano

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=xmqqr1g9ew2f.fsf@gitster.g \
    --to=gitster@pobox.com \
    --cc=christian.couder@gmail.com \
    --cc=congdanhqx@gmail.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=jrnieder@gmail.com \
    --cc=kaartic.sivaraam@gmail.com \
    --cc=pc44800@gmail.com \
    --cc=periperidip@gmail.com \
    --cc=rafaeloliveira.cs@gmail.com \
    --cc=raykar.ath@gmail.com \
    --cc=shouryashukla.oo@gmail.com \
    --cc=sunshine@sunshineco.com \
    /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.
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).