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
next prev 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 " 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 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=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 \ --subject='Re: [GSoC] [PATCH v2 0/2] submodule--helper: introduce subcommands for sh to C conversion' \ /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
Code repositories for project(s) associated with this 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).