From: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
To: git@vger.kernel.org
Cc: "Junio C Hamano" <gitster@pobox.com>,
"Glen Choo" <chooglen@google.com>,
"Atharva Raykar" <raykar.ath@gmail.com>,
"Prathamesh Chavan" <pc44800@gmail.com>,
"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>
Subject: [PATCH v3 00/32] submodule--helper: add tests, rm dead code, refactor & leak prep
Date: Sun, 21 Aug 2022 15:57:09 +0200 [thread overview]
Message-ID: <cover-v3-00.32-00000000000-20220821T130231Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-00.20-00000000000-20220728T161116Z-avarab@gmail.com>
This series is a "prep" series for the meaty leak fixes for
submodule--helper, see [1] (which will be re-rolled on top of this
v3). The v6 re-roll will be at [2].
Changes since v2:
* Clarified 1/* commit message.
* 22/*: keep the "to string" API function in submodule.[ch], as
suggested by Glen.
* 24/*: Minor change to existing comment obsoleted by the code change.
* 26-31/*: Do the full libification suggested by Glen, instead of
leaving it for later. As a result we don't need to pass up the
"must_die_on_failure", and some parts of the soon-to-be-rerolled
"leak" series[1] will be better as a result.
1. https://lore.kernel.org/git/cover-v5-00.17-00000000000-20220802T155002Z-avarab@gmail.com/
2. https://lore.kernel.org/git/cover-v6-00.17-00000000000-20220821T130415Z-avarab@gmail.com
Glen Choo (2):
submodule--helper: add "const" to copy of "update_data"
submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
Ævar Arnfjörð Bjarmason (30):
submodule tests: test usage behavior
submodule tests: test for "add <repository> <abs-path>"
submodule--helper: remove unused "name" helper
submodule--helper: remove unused "list" helper
test-tool submodule-config: remove unused "--url" handling
submodule--helper: move "is-active" to a test-tool
submodule--helper: move "check-name" to a test-tool
submodule--helper: move "resolve-relative-url-test" to a test-tool
submodule--helper style: don't separate declared variables with \n\n
submodule--helper style: add \n\n after variable declarations
submodule--helper: replace memset() with { 0 }-initialization
submodule--helper: use xstrfmt() in clone_submodule()
submodule--helper: move "sb" in clone_submodule() to its own scope
submodule--helper: add "const" to passed "module_clone_data"
submodule--helper: don't redundantly check "else if (res)"
submodule--helper: rename "int res" to "int ret"
submodule--helper: return "ret", not "1" from update_submodule()
submodule--helper: add missing braces to "else" arm
submodule--helper: don't call submodule_strategy_to_string() in BUG()
submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
submodule--helper: use "code" in run_update_command()
submodule--helper: don't exit() on failure, return
submodule--helper: libify determine_submodule_update_strategy()
submodule--helper: libify "must_die_on_failure" code paths
submodule--helper update: don't override 'checkout' exit code
submodule--helper: libify "must_die_on_failure" code paths (for die)
submodule--helper: check repo{_submodule,}_init() return values
submodule--helper: libify more "die" paths for module_update()
submodule--helper: libify even more "die" paths for module_update()
submodule--helper: fix bad config API usage
Makefile | 1 +
builtin/submodule--helper.c | 534 ++++++++++++++-----------------
git-compat-util.h | 3 +
repository.h | 3 +
submodule.c | 12 +-
submodule.h | 2 +-
t/helper/test-submodule-config.c | 11 +-
t/helper/test-submodule.c | 146 +++++++++
t/helper/test-tool-utils.h | 9 +
t/helper/test-tool.c | 7 +-
t/helper/test-tool.h | 1 +
t/t0060-path-utils.sh | 2 +-
t/t7400-submodule-basic.sh | 56 ++--
t/t7406-submodule-update.sh | 2 +-
t/t7413-submodule-is-active.sh | 35 +-
t/t7450-bad-git-dotfiles.sh | 2 +-
16 files changed, 460 insertions(+), 366 deletions(-)
create mode 100644 t/helper/test-submodule.c
create mode 100644 t/helper/test-tool-utils.h
Range-diff against v2:
1: daa5d3f9962 ! 1: 77586985ab3 submodule tests: test usage behavior
@@ Commit message
subsequent eventual behavior change will become clear.
For "--" this follows up on 68cabbfda36 (submodule: document default
- behavior, 2019-02-15) and tests that "status" doesn't don't support
+ behavior, 2019-02-15) and tests that "status" doesn't support
the "--" delimiter. There's no intrinsically good reason not to
support that. We behave this way due to edge cases in
git-submodule.sh's implementation, but as with "-h" let's assert our
@@ Commit message
doesn't seem to be a reason not to support it alongside "--quiet" and
"--cached", but let's likewise assert our existing behavior for now.
+ I.e. as long as "status" is optional it would make sense to support
+ all of its options when it's omitted, but we only do that with
+ "--quiet" and "--cached", and curiously omit "--recursive".
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## t/t7400-submodule-basic.sh ##
2: 9d920326df3 = 2: 7425f0025da submodule tests: test for "add <repository> <abs-path>"
3: d981db49fa1 = 3: 1be48c0b22f submodule--helper: remove unused "name" helper
4: 6f78f9c9274 = 4: 10189ba3da7 submodule--helper: remove unused "list" helper
5: 43902201701 = 5: ef66dfcd45f test-tool submodule-config: remove unused "--url" handling
6: e2a8bb0a28e = 6: 4727fbb4b64 submodule--helper: move "is-active" to a test-tool
7: b209532eb17 = 7: 9c644460b1d submodule--helper: move "check-name" to a test-tool
8: de49f31dab0 = 8: 03c8383b8e7 submodule--helper: move "resolve-relative-url-test" to a test-tool
9: b0238f699ce = 9: b1eaa6a796b submodule--helper style: don't separate declared variables with \n\n
10: 5f5e68a868b = 10: fd7fbe08536 submodule--helper style: add \n\n after variable declarations
11: 72dcf19e1c4 = 11: 356f07db436 submodule--helper: replace memset() with { 0 }-initialization
12: e5e267dccd5 = 12: 241ac5c7eee submodule--helper: use xstrfmt() in clone_submodule()
13: 91558745e2e = 13: f2f412f50c1 submodule--helper: move "sb" in clone_submodule() to its own scope
14: 866b8397a59 ! 14: ad7848067a9 submodule--helper: pass a "const struct module_clone_data" to clone_submodule()
@@ Metadata
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## Commit message ##
- submodule--helper: pass a "const struct module_clone_data" to clone_submodule()
+ submodule--helper: add "const" to passed "module_clone_data"
Add "const" to the "struct module_clone_data" that we pass to
clone_submodule(), which makes the ownership clear, and stops us from
15: 1ff380ec7b5 = 15: ab283479b92 submodule--helper: add "const" to copy of "update_data"
16: d3a7e646adc = 16: ab0fd2c60f0 submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
17: 23eb07176d9 = 17: fa2417c7a17 submodule--helper: don't redundantly check "else if (res)"
18: 78f74df6d5e = 18: be1ffbf2e26 submodule--helper: rename "int res" to "int ret"
19: f0258e37ebe = 19: 92e17c37839 submodule--helper: return "ret", not "1" from update_submodule()
20: 70f030cca4e = 20: 55e3ea5f9dd submodule--helper: add missing braces to "else" arm
21: bce1a014a2f = 21: 2bb45302392 submodule--helper: don't call submodule_strategy_to_string() in BUG()
22: 98c3e562c82 ! 22: 0131c197427 submodule--helper: move submodule_strategy_to_string() to only user
@@ Metadata
Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## Commit message ##
- submodule--helper: move submodule_strategy_to_string() to only user
+ submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
- Move the submodule_strategy_to_string() function added in
- 3604242f080 (submodule: port init from shell to C, 2016-04-15) to its
- only user.
+ Change the submodule_strategy_to_string() function added in
+ 3604242f080 (submodule: port init from shell to C, 2016-04-15) to
+ really return a "const char *". In the "SM_UPDATE_COMMAND" case it
+ would return a strbuf_detach().
- This function would return NULL on SM_UPDATE_UNSPECIFIED, so it wasn't
- safe to xstrdup() its return value in the general case, or to use it
- in a sprintf() format as the code removed in the preceding commit did.
+ Furthermore, this function would return NULL on SM_UPDATE_UNSPECIFIED,
+ so it wasn't safe to xstrdup() its return value in the general case,
+ or to use it in a sprintf() format as the code removed in the
+ preceding commit did.
But its callers would never call it with either SM_UPDATE_UNSPECIFIED
- or SM_UPDATE_COMMAND. Let's move it to a "static" helper, and have its
- functionality reflect how it's used, and BUG() out on the rest.
+ or SM_UPDATE_COMMAND. Let's have its behavior reflect how its only
+ user expects it to behave, and BUG() out on the rest.
By doing this we can also stop needlessly xstrdup()-ing and free()-ing
the memory for the config we're setting. We can instead always use
constant strings. We can also use the *_tmp() variant of
git_config_get_string().
+ Let's also rename this submodule_strategy_to_string() function to
+ submodule_update_type_to_string(). Now that it's only tasked with
+ returning a string version of the "enum submodule_update_type type".
+ Before it would look at the "command" field in "struct
+ submodule_update_strategy".
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: struct init_cb {
- };
- #define INIT_CB_INIT { 0 }
-
-+static const char *submodule_strategy_to_string(enum submodule_update_type type)
-+{
-+ switch (type) {
-+ case SM_UPDATE_CHECKOUT:
-+ return "checkout";
-+ case SM_UPDATE_MERGE:
-+ return "merge";
-+ case SM_UPDATE_REBASE:
-+ return "rebase";
-+ case SM_UPDATE_NONE:
-+ return "none";
-+ case SM_UPDATE_UNSPECIFIED:
-+ case SM_UPDATE_COMMAND:
-+ BUG("init_submodule() should handle type %d", type);
-+ default:
-+ BUG("unexpected update strategy type: %d", type);
-+ }
-+}
-+
- static void init_submodule(const char *path, const char *prefix,
- unsigned int flags)
+@@ builtin/submodule--helper.c: static void init_submodule(const char *path, const char *prefix,
{
const struct submodule *sub;
struct strbuf sb = STRBUF_INIT;
@@ builtin/submodule--helper.c: static void init_submodule(const char *path, const
+ upd = "none";
} else {
- upd = xstrdup(submodule_strategy_to_string(&sub->update_strategy));
-+ upd = submodule_strategy_to_string(sub->update_strategy.type);
++ upd = submodule_update_type_to_string(sub->update_strategy.type);
}
if (git_config_set_gently(sb.buf, upd))
@@ submodule.c: int parse_submodule_update_strategy(const char *value,
}
-const char *submodule_strategy_to_string(const struct submodule_update_strategy *s)
--{
++const char *submodule_update_type_to_string(enum submodule_update_type type)
+ {
- struct strbuf sb = STRBUF_INIT;
- switch (s->type) {
-- case SM_UPDATE_CHECKOUT:
-- return "checkout";
-- case SM_UPDATE_MERGE:
-- return "merge";
-- case SM_UPDATE_REBASE:
-- return "rebase";
-- case SM_UPDATE_NONE:
-- return "none";
-- case SM_UPDATE_UNSPECIFIED:
++ switch (type) {
+ case SM_UPDATE_CHECKOUT:
+ return "checkout";
+ case SM_UPDATE_MERGE:
+@@ submodule.c: const char *submodule_strategy_to_string(const struct submodule_update_strategy
+ case SM_UPDATE_NONE:
+ return "none";
+ case SM_UPDATE_UNSPECIFIED:
- return NULL;
-- case SM_UPDATE_COMMAND:
+ case SM_UPDATE_COMMAND:
- strbuf_addf(&sb, "!%s", s->command);
- return strbuf_detach(&sb, NULL);
-- }
++ BUG("init_submodule() should handle type %d", type);
++ default:
++ BUG("unexpected update strategy type: %d", type);
+ }
- return NULL;
--}
--
+ }
+
void handle_ignore_submodules_arg(struct diff_options *diffopt,
- const char *arg)
- {
## submodule.h ##
@@ submodule.h: void die_path_inside_submodule(struct index_state *istate,
@@ submodule.h: void die_path_inside_submodule(struct index_state *istate,
int parse_submodule_update_strategy(const char *value,
struct submodule_update_strategy *dst);
-const char *submodule_strategy_to_string(const struct submodule_update_strategy *s);
++const char *submodule_update_type_to_string(enum submodule_update_type type);
void handle_ignore_submodules_arg(struct diff_options *, const char *);
void show_submodule_diff_summary(struct diff_options *o, const char *path,
struct object_id *one, struct object_id *two,
23: db2d2fb5a21 = 23: 6cac6cb2fa6 submodule--helper: use "code" in run_update_command()
24: d33260487bd ! 24: 6d56f671c7a submodule--helper: don't exit() on failure, return
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *upd
if (update_data->recursive) {
struct child_process cp = CHILD_PROCESS_INIT;
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data)
+ prepare_submodule_repo_env(&cp.env);
+ update_data_to_args(&next, &cp.args);
+
+- /* die() if child process die()'d */
+ ret = run_command(&cp);
+ if (!ret)
+ return 0;
die_message(_("Failed to recurse into submodule path '%s'"),
update_data->displaypath);
if (ret == 128)
25: 9981a75d7e8 = 25: dfd5c8bcd61 submodule--helper: libify determine_submodule_update_strategy()
26: b48705c6cc0 ! 26: da1a07afd25 submodule--helper: libify "must_die_on_failure" code paths
@@ Commit message
after having gone through the various codepaths that we were only
returning 128 if we meant to early abort.
+ In update_submodules() we'll for now set any non-zero non-128 exit
+ codes to "1", but will start ferrying up the exit code as-is in a
+ subsequent commit.
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
@@ builtin/submodule--helper.c: static void update_data_to_args(struct update_data
{
int ret;
+@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data,
+ update_data->sm_path,
+ update_data->update_default,
+ &update_data->update_strategy);
+- if (ret) {
+- *must_die_on_failure = 1;
++ if (ret)
+ return ret;
+- }
+
+ if (update_data->just_cloned)
+ oidcpy(&update_data->suboid, null_oid());
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data,
}
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *upd
if (update_data->recursive) {
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data,
+ update_data_to_args(&next, &cp.args);
- /* die() if child process die()'d */
ret = run_command(&cp);
- if (!ret)
- return 0;
@@ builtin/submodule--helper.c: static int update_submodules(struct update_data *up
update_data->sm_path = ucd.sub->path;
- code = update_submodule(update_data, &must_die_on_failure);
-+ code = update_submodule(update_data);
- if (code)
- ret = code;
+- if (code)
+- ret = code;
- if (must_die_on_failure)
-+ if (code == 128)
++ code = update_submodule(update_data);
++ if (!code)
++ continue;
++ ret = code;
++ if (ret == 128)
goto cleanup;
- else if (code)
- ret = 1;
+- else if (code)
+- ret = 1;
++ ret = 1;
+ }
+
+ cleanup:
-: ----------- > 27: 2795a3738c8 submodule--helper update: don't override 'checkout' exit code
27: 93cd1ccde54 ! 28: 6d9bccb34c3 submodule--helper: libify "must_die_on_failure" code paths (for die)
@@ Commit message
const char *branch = remote_submodule_branch(update_data->sm_path);
But as that code is used by other callers than the "update" code let's
- leave converting it for now.
+ leave converting it for a subsequent commit.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *upd
update_data->displaypath = get_submodule_displaypath(
update_data->sm_path, update_data->prefix);
@@ builtin/submodule--helper.c: static int update_submodule(struct update_data *update_data)
- update_data->sm_path,
- update_data->update_default,
- &update_data->update_strategy);
-- if (ret) {
-- *must_die_on_failure = 1;
-+ if (ret)
- return ret;
-- }
-
if (update_data->just_cloned)
oidcpy(&update_data->suboid, null_oid());
else if (resolve_gitlink_ref(update_data->sm_path, "HEAD", &update_data->suboid))
-: ----------- > 29: d4b55f07a30 submodule--helper: check repo{_submodule,}_init() return values
-: ----------- > 30: 15c2490a978 submodule--helper: libify more "die" paths for module_update()
-: ----------- > 31: 1694ccfe882 submodule--helper: libify even more "die" paths for module_update()
28: 6160a1ab250 = 32: d133402462f submodule--helper: fix bad config API usage
--
2.37.2.1279.g64dec4e13cf
next prev parent reply other threads:[~2022-08-21 13:58 UTC|newest]
Thread overview: 142+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-07-28 16:16 [PATCH 00/20] submodule--helper: add tests, rm dead code, refactor & leak prep Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 01/20] submodule tests: test usage behavior Ævar Arnfjörð Bjarmason
2022-07-29 20:30 ` Glen Choo
2022-07-28 16:16 ` [PATCH 02/20] submodule tests: test for "add <repository> <abs-path>" Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 03/20] submodule--helper: remove unused "name" helper Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 04/20] submodule--helper: remove unused "list" helper Ævar Arnfjörð Bjarmason
2022-07-29 21:31 ` Glen Choo
2022-07-28 16:16 ` [PATCH 05/20] test-tool submodule-config: remove unused "--url" handling Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 06/20] submodule--helper: move "is-active" to a test-tool Ævar Arnfjörð Bjarmason
2022-07-29 21:45 ` Glen Choo
2022-07-28 16:16 ` [PATCH 07/20] submodule--helper: move "check-name" " Ævar Arnfjörð Bjarmason
2022-07-29 21:55 ` Glen Choo
2022-07-28 16:16 ` [PATCH 08/20] submodule--helper: move "resolve-relative-url-test" " Ævar Arnfjörð Bjarmason
2022-07-29 21:58 ` Glen Choo
2022-07-28 16:16 ` [PATCH 09/20] submodule--helper style: don't separate declared variables with \n\n Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 10/20] submodule--helper style: add \n\n after variable declarations Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 11/20] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 12/20] submodule--helper: convert a strbuf_detach() to xstrfmt() Ævar Arnfjörð Bjarmason
2022-07-28 16:16 ` [PATCH 13/20] submodule--helper: stop conflating "sb" in clone_submodule() Ævar Arnfjörð Bjarmason
2022-07-29 17:08 ` Glen Choo
2022-07-28 16:16 ` [PATCH 14/20] submodule--helper: pass a "const struct module_clone_data" to clone_submodule() Ævar Arnfjörð Bjarmason
2022-07-29 22:09 ` Glen Choo
2022-08-01 15:05 ` Ævar Arnfjörð Bjarmason
2022-07-28 16:17 ` [PATCH 15/20] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-07-28 16:17 ` [PATCH 16/20] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-07-28 16:17 ` [PATCH 17/20] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-07-28 16:17 ` [PATCH 18/20] submodule--helper: add skeleton "goto cleanup" to update_submodule() Ævar Arnfjörð Bjarmason
2022-07-28 16:17 ` [PATCH 19/20] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-07-29 22:23 ` Glen Choo
2022-07-28 16:17 ` [PATCH 20/20] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-07-29 22:52 ` [PATCH 00/20] submodule--helper: add tests, rm dead code, refactor & leak prep Glen Choo
2022-08-02 15:45 ` [PATCH v2 00/28] " Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 01/28] submodule tests: test usage behavior Ævar Arnfjörð Bjarmason
2022-08-02 22:30 ` Glen Choo
2022-08-02 15:45 ` [PATCH v2 02/28] submodule tests: test for "add <repository> <abs-path>" Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 03/28] submodule--helper: remove unused "name" helper Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 04/28] submodule--helper: remove unused "list" helper Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 05/28] test-tool submodule-config: remove unused "--url" handling Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 06/28] submodule--helper: move "is-active" to a test-tool Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 07/28] submodule--helper: move "check-name" " Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 08/28] submodule--helper: move "resolve-relative-url-test" " Ævar Arnfjörð Bjarmason
2022-08-02 22:32 ` Glen Choo
2022-08-02 15:45 ` [PATCH v2 09/28] submodule--helper style: don't separate declared variables with \n\n Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 10/28] submodule--helper style: add \n\n after variable declarations Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 11/28] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 12/28] submodule--helper: use xstrfmt() in clone_submodule() Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 13/28] submodule--helper: move "sb" in clone_submodule() to its own scope Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 14/28] submodule--helper: pass a "const struct module_clone_data" to clone_submodule() Ævar Arnfjörð Bjarmason
2022-08-02 15:45 ` [PATCH v2 15/28] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 16/28] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 17/28] submodule--helper: don't redundantly check "else if (res)" Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 18/28] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 19/28] submodule--helper: return "ret", not "1" from update_submodule() Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 20/28] submodule--helper: add missing braces to "else" arm Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 21/28] submodule--helper: don't call submodule_strategy_to_string() in BUG() Ævar Arnfjörð Bjarmason
2022-08-02 23:08 ` Glen Choo
2022-08-02 15:46 ` [PATCH v2 22/28] submodule--helper: move submodule_strategy_to_string() to only user Ævar Arnfjörð Bjarmason
2022-08-02 23:30 ` Glen Choo
2022-08-03 13:06 ` Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 23/28] submodule--helper: use "code" in run_update_command() Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 24/28] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 25/28] submodule--helper: libify determine_submodule_update_strategy() Ævar Arnfjörð Bjarmason
2022-08-02 15:46 ` [PATCH v2 26/28] submodule--helper: libify "must_die_on_failure" code paths Ævar Arnfjörð Bjarmason
2022-08-03 4:37 ` Glen Choo
2022-08-02 15:46 ` [PATCH v2 27/28] submodule--helper: libify "must_die_on_failure" code paths (for die) Ævar Arnfjörð Bjarmason
2022-08-03 4:32 ` Glen Choo
2022-08-02 15:46 ` [PATCH v2 28/28] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` Ævar Arnfjörð Bjarmason [this message]
2022-08-21 13:57 ` [PATCH v3 01/32] submodule tests: test usage behavior Ævar Arnfjörð Bjarmason
2022-08-23 22:42 ` Glen Choo
2022-08-21 13:57 ` [PATCH v3 02/32] submodule tests: test for "add <repository> <abs-path>" Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 03/32] submodule--helper: remove unused "name" helper Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 04/32] submodule--helper: remove unused "list" helper Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 05/32] test-tool submodule-config: remove unused "--url" handling Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 06/32] submodule--helper: move "is-active" to a test-tool Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 07/32] submodule--helper: move "check-name" " Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 08/32] submodule--helper: move "resolve-relative-url-test" " Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 09/32] submodule--helper style: don't separate declared variables with \n\n Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 10/32] submodule--helper style: add \n\n after variable declarations Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 11/32] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 12/32] submodule--helper: use xstrfmt() in clone_submodule() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 13/32] submodule--helper: move "sb" in clone_submodule() to its own scope Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 14/32] submodule--helper: add "const" to passed "module_clone_data" Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 15/32] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 16/32] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 17/32] submodule--helper: don't redundantly check "else if (res)" Ævar Arnfjörð Bjarmason
2022-08-21 16:12 ` Eric Sunshine
2022-08-21 13:57 ` [PATCH v3 18/32] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 19/32] submodule--helper: return "ret", not "1" from update_submodule() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 20/32] submodule--helper: add missing braces to "else" arm Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 21/32] submodule--helper: don't call submodule_strategy_to_string() in BUG() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 22/32] submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 23/32] submodule--helper: use "code" in run_update_command() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 24/32] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 25/32] submodule--helper: libify determine_submodule_update_strategy() Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 26/32] submodule--helper: libify "must_die_on_failure" code paths Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 27/32] submodule--helper update: don't override 'checkout' exit code Ævar Arnfjörð Bjarmason
2022-08-21 13:57 ` [PATCH v3 28/32] submodule--helper: libify "must_die_on_failure" code paths (for die) Ævar Arnfjörð Bjarmason
2022-08-23 23:27 ` Glen Choo
2022-08-21 13:57 ` [PATCH v3 29/32] submodule--helper: check repo{_submodule,}_init() return values Ævar Arnfjörð Bjarmason
2022-08-23 23:38 ` Glen Choo
2022-08-21 13:57 ` [PATCH v3 30/32] submodule--helper: libify more "die" paths for module_update() Ævar Arnfjörð Bjarmason
2022-08-24 0:07 ` Glen Choo
2022-08-21 13:57 ` [PATCH v3 31/32] submodule--helper: libify even " Ævar Arnfjörð Bjarmason
2022-08-24 0:12 ` Glen Choo
2022-08-21 13:57 ` [PATCH v3 32/32] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 00/33] submodule--helper: add tests, rm dead code, refactor & leak prep Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 01/33] submodule tests: test usage behavior Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 02/33] submodule tests: test for "add <repository> <abs-path>" Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 03/33] submodule--helper: remove unused "name" helper Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 04/33] submodule--helper: remove unused "list" helper Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 05/33] test-tool submodule-config: remove unused "--url" handling Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 06/33] submodule--helper: move "is-active" to a test-tool Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 07/33] submodule--helper: move "check-name" " Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 08/33] submodule--helper: move "resolve-relative-url-test" " Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 09/33] submodule--helper style: don't separate declared variables with \n\n Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 10/33] submodule--helper style: add \n\n after variable declarations Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 11/33] submodule--helper: replace memset() with { 0 }-initialization Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 12/33] submodule--helper: use xstrfmt() in clone_submodule() Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 13/33] submodule--helper: move "sb" in clone_submodule() to its own scope Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 14/33] submodule--helper: add "const" to passed "module_clone_data" Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 15/33] submodule--helper: add "const" to copy of "update_data" Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 16/33] submodule--helper: add "const" to passed "struct update_data" Ævar Arnfjörð Bjarmason
2022-08-31 23:17 ` [PATCH v4 17/33] submodule--helper: refactor "errmsg_str" to be a "struct strbuf" Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 18/33] submodule--helper: don't redundantly check "else if (res)" Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 19/33] submodule--helper: rename "int res" to "int ret" Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 20/33] submodule--helper: return "ret", not "1" from update_submodule() Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 21/33] submodule--helper: add missing braces to "else" arm Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 22/33] submodule--helper: don't call submodule_strategy_to_string() in BUG() Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 23/33] submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string() Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 24/33] submodule--helper: use "code" in run_update_command() Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 25/33] submodule--helper: don't exit() on failure, return Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 26/33] submodule--helper: libify determine_submodule_update_strategy() Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 27/33] submodule--helper: libify "must_die_on_failure" code paths Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 28/33] submodule--helper update: don't override 'checkout' exit code Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 29/33] submodule--helper: libify "must_die_on_failure" code paths (for die) Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 30/33] submodule--helper: check repo{_submodule,}_init() return values Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 31/33] submodule--helper: libify more "die" paths for module_update() Ævar Arnfjörð Bjarmason
2022-09-01 20:55 ` Glen Choo
2022-08-31 23:18 ` [PATCH v4 32/33] submodule--helper: libify even " Ævar Arnfjörð Bjarmason
2022-08-31 23:18 ` [PATCH v4 33/33] submodule--helper: fix bad config API usage Ævar Arnfjörð Bjarmason
2022-09-01 20:59 ` [PATCH v4 00/33] submodule--helper: add tests, rm dead code, refactor & leak prep Glen Choo
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=cover-v3-00.32-00000000000-20220821T130231Z-avarab@gmail.com \
--to=avarab@gmail.com \
--cc=chooglen@google.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=pc44800@gmail.com \
--cc=raykar.ath@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 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 NNTP newsgroup(s).