All of lore.kernel.org
 help / color / mirror / Atom feed
From: Atharva Raykar <raykar.ath@gmail.com>
To: git@vger.kernel.org
Cc: Atharva Raykar <raykar.ath@gmail.com>,
	Emily Shaffer <emilyshaffer@google.com>,
	Jonathan Nieder <jrnieder@gmail.com>,
	Junio C Hamano <gitster@pobox.com>,
	Christian Couder <christian.couder@gmail.com>,
	Shourya Shukla <periperidip@gmail.com>
Subject: [GSoC] [PATCH v2 0/2] submodule--helper: introduce subcommands for sh to C conversion
Date: Tue,  8 Jun 2021 15:26:53 +0530	[thread overview]
Message-ID: <20210608095655.47324-1-raykar.ath@gmail.com> (raw)
In-Reply-To: <20210605113913.29005-1-raykar.ath@gmail.com>

I have elaborated the commit message more, to explain why a warning is emitted
for an empty value in 'submodule.active'. The warning has been worded more
accurately than before.

An unnecessary extra check for 'submodule.active' has been avoided.

I have included a range diff, in case that is useful.

My fork containing these changes can be found at:
https://github.com/tfidfwastaken/git/commits/submodule-add-in-c

Emily and Jonathan: To be on the safe side, I have CC'd you so you know where I
keep my changes, and we can avoid potential conflicts, as I believe you are
working on this area as well. Just so you know, every week, I update the link to
all my ongoing work at:
https://atharvaraykar.me/gitnotes/#my-public-gitgit-branches

Atharva Raykar (2):
  submodule--helper: introduce add-clone subcommand
  submodule--helper: introduce add-config subcommand

 builtin/submodule--helper.c | 315 ++++++++++++++++++++++++++++++++++++
 git-submodule.sh            |  66 +-------
 2 files changed, 317 insertions(+), 64 deletions(-)

Range-diff against v1:
1:  398bfa713d = 1:  4374ebb6b1 submodule--helper: introduce add-clone subcommand
2:  f9954cfcf7 ! 2:  406022d0f7 submodule--helper: introduce add-config subcommand
    @@ Commit message
     
         This is meant to be a faithful conversion from shell to C, with only one
         minor change: A warning is emitted if no value is specified in
    -    'submodule.active', ie, the config looks like: "[submodule] active\n".
    +    'submodule.active', ie, the config looks like: "[submodule] active\n",
    +    because it is an invalid configuration. It would be helpful to let the
    +    user know that the pathspec is unset, and the value of
    +    'submodule.<name>.active' might be set to 'true' so that they can
    +    rectify their configuration and prevent future surprises (especially
    +    given that the latter variable has a higher priority than the former).
     
         The structure of the conditional to check if we need to set the 'active'
         toggle looks different from the shell version -- but behaves the same.
    @@ builtin/submodule--helper.c: static int add_clone(int argc, const char **argv, c
     +	char *key, *submod_pathspec = NULL;
     +	struct child_process add_submod = CHILD_PROCESS_INIT;
     +	struct child_process add_gitmodules = CHILD_PROCESS_INIT;
    -+	int pathspec_key_exists;
    ++	int pathspec_key_exists, activate = 0;
     +
     +	key = xstrfmt("submodule.%s.url", add_data->sm_name);
     +	git_config_set_gently(key, add_data->realrepo);
    @@ builtin/submodule--helper.c: static int add_clone(int argc, const char **argv, c
     +	 */
     +	pathspec_key_exists = !git_config_get_string("submodule.active",
     +						     &submod_pathspec);
    -+	if (pathspec_key_exists && !submod_pathspec)
    -+		warning(_("The submodule.active configuration exists, but "
    -+			  "no pathspec was specified. Setting the value of "
    -+			  "submodule.%s.active to 'true'."), add_data->sm_name);
    ++	if (pathspec_key_exists && !submod_pathspec) {
    ++		warning(_("The submodule.active configuration exists, but the "
    ++			  "pathspec was unset. If the submodule is not already "
    ++			  "active, the value of submodule.%s.active will be "
    ++			  "be set to 'true'."), add_data->sm_name);
    ++		activate = 1;
    ++	}
     +
     +	/*
    -+	 * If submodule.active does not exist, we will activate this
    -+	 * module unconditionally.
    ++	 * If submodule.active does not exist, or if the pathspec was unset,
    ++	 * we will activate this module unconditionally.
     +	 *
     +	 * Otherwise, we ask is_submodule_active(), which iterates
     +	 * through all the values of 'submodule.active' to determine
     +	 * if this module is already active.
     +	 */
    -+	if (!pathspec_key_exists ||
    ++	if (!pathspec_key_exists || activate ||
     +	    !is_submodule_active(the_repository, add_data->sm_path)) {
     +		key = xstrfmt("submodule.%s.active", add_data->sm_name);
     +		git_config_set_gently(key, "true");
-- 
2.31.1


  parent reply	other threads:[~2021-06-08  9:58 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-06-05 11:39 [GSoC] [PATCH 0/2] submodule--helper: introduce subcommands for sh to C conversion Atharva Raykar
2021-06-05 11:39 ` [GSoC] [PATCH 1/2] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-06  3:38   ` Bagas Sanjaya
2021-06-06  9:06     ` Christian Couder
2021-06-05 11:39 ` [GSoC] [PATCH 2/2] submodule--helper: introduce add-config subcommand Atharva Raykar
2021-06-07  9:24   ` Christian Couder
2021-06-07 11:24     ` Atharva Raykar
2021-06-08  9:56 ` Atharva Raykar [this message]
2021-06-08  9:56   ` [GSoC] [PATCH v2 1/2] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-08 12:32     ` Đoàn Trần Công Danh
2021-06-09 10:31       ` Atharva Raykar
2021-06-09 13:06         ` Đoàn Trần Công Danh
2021-06-09 13:10           ` Atharva Raykar
2021-06-09  4:24     ` Junio C Hamano
2021-06-09 10:31       ` Atharva Raykar
2021-06-08  9:56   ` [GSoC] [PATCH v2 2/2] submodule--helper: introduce add-config subcommand Atharva Raykar
2021-06-10  8:39   ` [GSoC] [PATCH v3 0/2] submodule--helper: introduce subcommands for sh to C conversion Atharva Raykar
2021-06-10  8:39     ` [PATCH v3 1/2] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-11  6:10       ` Junio C Hamano
2021-06-11  7:32         ` Atharva Raykar
2021-06-11  7:59           ` Junio C Hamano
2021-06-10  8:39     ` [PATCH v3 2/2] submodule--helper: introduce add-config subcommand Atharva Raykar
2021-06-14 12:51     ` [GSoC] [PATCH v4 0/3] submodule--helper: introduce subcommands for sh to C conversion Atharva Raykar
2021-06-14 12:51       ` [PATCH v4 1/3] submodule--helper: refactor module_clone() Atharva Raykar
2021-06-15  3:51         ` Junio C Hamano
2021-06-15  9:03           ` Atharva Raykar
2021-06-14 12:51       ` [PATCH v4 2/3] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-14 12:51       ` [PATCH v4 3/3] submodule--helper: introduce add-config subcommand Atharva Raykar
2021-06-14 19:51         ` Rafael Silva
2021-06-14 20:12           ` Eric Sunshine
2021-06-15  9:37             ` Rafael Silva
2021-06-15  7:09           ` Atharva Raykar
2021-06-15  9:38       ` [GSoC] [PATCH v5 0/3] submodule--helper: introduce subcommands for sh to C conversion Atharva Raykar
2021-06-15  9:38         ` [PATCH v5 1/3] submodule--helper: refactor module_clone() Atharva Raykar
2021-06-15  9:38         ` [PATCH v5 2/3] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-15  9:38         ` [PATCH v5 3/3] submodule--helper: introduce add-config subcommand Atharva Raykar
2021-06-15 14:57         ` [GSoC] [PATCH v6 0/3] submodule--helper: introduce subcommands for sh to C conversion Atharva Raykar
2021-06-15 14:57           ` [PATCH v6 1/3] submodule--helper: refactor module_clone() Atharva Raykar
2021-06-15 14:57           ` [PATCH v6 2/3] submodule--helper: introduce add-clone subcommand Atharva Raykar
2021-06-15 14:57           ` [PATCH v6 3/3] submodule--helper: introduce add-config subcommand Atharva Raykar

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=20210608095655.47324-1-raykar.ath@gmail.com \
    --to=raykar.ath@gmail.com \
    --cc=christian.couder@gmail.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=jrnieder@gmail.com \
    --cc=periperidip@gmail.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.
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.