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 v4 00/33] submodule--helper: add tests, rm dead code, refactor & leak prep
Date: Thu, 1 Sep 2022 01:17:42 +0200 [thread overview]
Message-ID: <cover-v4-00.33-00000000000-20220831T230519Z-avarab@gmail.com> (raw)
In-Reply-To: <cover-v3-00.32-00000000000-20220821T130231Z-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 v7 re-roll will be at [2].
Changes since v3:
* Addressed (hopefully) all of the small feedback, just typo fixes &
commit message clarifications.
* Marked a parameter as "const", which helps reason about subsequent
things in the "leak" series.
Hopefully this is ready to proceed past "seen" in its current form...
1. https://lore.kernel.org/git/cover-v3-00.32-00000000000-20220821T130231Z-avarab@gmail.com/
2. https://lore.kernel.org/git/cover-v7-00.17-00000000000-20220831T231003Z-avarab@gmail.com
This series & passing CI can be seen at:
https://github.com/avar/git/tree/avar/submodule--helper-cleanup-and-tests-4
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 (31):
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: add "const" to passed "struct update_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 | 546 ++++++++++++++-----------------
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, 467 insertions(+), 371 deletions(-)
create mode 100644 t/helper/test-submodule.c
create mode 100644 t/helper/test-tool-utils.h
Range-diff against v3:
1: 77586985ab3 = 1: 2e882837026 submodule tests: test usage behavior
2: 7425f0025da = 2: a015be8e89a submodule tests: test for "add <repository> <abs-path>"
3: 1be48c0b22f = 3: 27a455d231a submodule--helper: remove unused "name" helper
4: 10189ba3da7 = 4: 6714a04a5c8 submodule--helper: remove unused "list" helper
5: ef66dfcd45f = 5: 83516cdcb5c test-tool submodule-config: remove unused "--url" handling
6: 4727fbb4b64 = 6: 51d2d946b4f submodule--helper: move "is-active" to a test-tool
7: 9c644460b1d = 7: 3258b5a609d submodule--helper: move "check-name" to a test-tool
8: 03c8383b8e7 = 8: 4e6929f05ec submodule--helper: move "resolve-relative-url-test" to a test-tool
9: b1eaa6a796b = 9: 76b55b9105f submodule--helper style: don't separate declared variables with \n\n
10: fd7fbe08536 = 10: 44b27475864 submodule--helper style: add \n\n after variable declarations
11: 356f07db436 = 11: 008c6f4ac59 submodule--helper: replace memset() with { 0 }-initialization
12: 241ac5c7eee = 12: 84504a86a72 submodule--helper: use xstrfmt() in clone_submodule()
13: f2f412f50c1 = 13: 474d1a9e13e submodule--helper: move "sb" in clone_submodule() to its own scope
14: ad7848067a9 = 14: e514f0b68c0 submodule--helper: add "const" to passed "module_clone_data"
15: ab283479b92 = 15: 30be00d5cf7 submodule--helper: add "const" to copy of "update_data"
-: ----------- > 16: b77364015cf submodule--helper: add "const" to passed "struct update_data"
16: ab0fd2c60f0 = 17: 52da0d60b47 submodule--helper: refactor "errmsg_str" to be a "struct strbuf"
17: fa2417c7a17 ! 18: 1786e40ec99 submodule--helper: don't redundantly check "else if (res)"
@@ Commit message
return 0;
So we don't need to guard the "return 1" with an "else if (res)", we
- an return unconditionally at this point. See b3c5f5cb048 (submodule:
+ can return unconditionally at this point. See b3c5f5cb048 (submodule:
move core cmd_update() logic to C, 2022-03-15) for the initial
introduction of this code, this check of "res" has always been
redundant.
18: be1ffbf2e26 = 19: bc7d401bfb3 submodule--helper: rename "int res" to "int ret"
19: 92e17c37839 = 20: fdd9ef8b6f6 submodule--helper: return "ret", not "1" from update_submodule()
20: 55e3ea5f9dd = 21: 9edd68f9c5a submodule--helper: add missing braces to "else" arm
21: 2bb45302392 ! 22: f0ada6854c2 submodule--helper: don't call submodule_strategy_to_string() in BUG()
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
must_die_on_failure = 1;
break;
default:
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
}
strvec_push(&cp.args, oid);
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
ud->update_strategy.command, oid, ud->displaypath);
break;
default:
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
}
if (must_die_on_failure)
exit(128);
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
ud->displaypath, ud->update_strategy.command, oid);
break;
default:
22: 0131c197427 = 23: d101aa6c8c5 submodule API: don't handle SM_..{UNSPECIFIED,COMMAND} in to_string()
23: 6cac6cb2fa6 ! 24: 77d21b570e3 submodule--helper: use "code" in run_update_command()
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
{
struct child_process cp = CHILD_PROCESS_INIT;
char *oid = oid_to_hex(&ud->oid);
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT:
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
strvec_push(&cp.args, "rebase");
if (ud->quiet)
strvec_push(&cp.args, "--quiet");
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
break;
default:
BUG("unexpected update strategy type: %d",
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
cp.dir = xstrdup(ud->sm_path);
prepare_submodule_repo_env(&cp.env);
if (run_command(&cp)) {
24: 6d56f671c7a ! 25: 99717171578 submodule--helper: don't exit() on failure, return
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet, str
+@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet,
return run_command(&cp);
}
--static int run_update_command(struct update_data *ud, int subforce)
-+static int run_update_command(struct update_data *ud, int subforce,
+-static int run_update_command(const struct update_data *ud, int subforce)
++static int run_update_command(const struct update_data *ud, int subforce,
+ int *must_die_on_failure)
{
struct child_process cp = CHILD_PROCESS_INIT;
char *oid = oid_to_hex(&ud->oid);
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
}
if (ret == 128)
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
return ret;
}
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
return 0;
}
--static int run_update_procedure(struct update_data *ud)
-+static int run_update_procedure(struct update_data *ud,
+-static int run_update_procedure(const struct update_data *ud)
++static int run_update_procedure(const struct update_data *ud,
+ int *must_die_on_failure)
{
int subforce = is_null_oid(&ud->suboid) || ud->force;
-@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data *ud)
+@@ builtin/submodule--helper.c: static int run_update_procedure(const struct update_data *ud)
ud->displaypath, oid_to_hex(&ud->oid));
}
@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data
}
static const char *remote_submodule_branch(const char *path)
-@@ builtin/submodule--helper.c: static void update_data_to_args(struct update_data *update_data, struct strvec *
+@@ builtin/submodule--helper.c: static void update_data_to_args(const struct update_data *update_data,
"--no-single-branch");
}
25: dfd5c8bcd61 ! 26: 512106bc6be submodule--helper: libify determine_submodule_update_strategy()
@@ builtin/submodule--helper.c: static void determine_submodule_update_strategy(str
}
struct update_clone_data {
-@@ builtin/submodule--helper.c: static void update_data_to_args(struct update_data *update_data, struct strvec *
+@@ builtin/submodule--helper.c: static void update_data_to_args(const struct update_data *update_data,
static int update_submodule(struct update_data *update_data,
int *must_die_on_failure)
{
26: da1a07afd25 ! 27: 2b066190739 submodule--helper: libify "must_die_on_failure" code paths
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet, str
+@@ builtin/submodule--helper.c: static int fetch_in_submodule(const char *module_path, int depth, int quiet,
return run_command(&cp);
}
--static int run_update_command(struct update_data *ud, int subforce,
+-static int run_update_command(const struct update_data *ud, int subforce,
- int *must_die_on_failure)
-+static int run_update_command(struct update_data *ud, int subforce)
++static int run_update_command(const struct update_data *ud, int subforce)
{
struct child_process cp = CHILD_PROCESS_INIT;
char *oid = oid_to_hex(&ud->oid);
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce,
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce,
ud->update_strategy.type);
}
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
return ret;
}
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce,
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce,
return 0;
}
--static int run_update_procedure(struct update_data *ud,
+-static int run_update_procedure(const struct update_data *ud,
- int *must_die_on_failure)
-+static int run_update_procedure(struct update_data *ud)
++static int run_update_procedure(const struct update_data *ud)
{
int subforce = is_null_oid(&ud->suboid) || ud->force;
-@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data *ud,
+@@ builtin/submodule--helper.c: static int run_update_procedure(const struct update_data *ud,
ud->displaypath, oid_to_hex(&ud->oid));
}
@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data
}
static const char *remote_submodule_branch(const char *path)
-@@ builtin/submodule--helper.c: static void update_data_to_args(struct update_data *update_data, struct strvec *
+@@ builtin/submodule--helper.c: static void update_data_to_args(const struct update_data *update_data,
"--no-single-branch");
}
27: 2795a3738c8 ! 28: 72e3cdf6543 submodule--helper update: don't override 'checkout' exit code
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
{
struct child_process cp = CHILD_PROCESS_INIT;
char *oid = oid_to_hex(&ud->oid);
@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *u
switch (ud->update_strategy.type) {
case SM_UPDATE_CHECKOUT:
-@@ builtin/submodule--helper.c: static int run_update_command(struct update_data *ud, int subforce)
+@@ builtin/submodule--helper.c: static int run_update_command(const struct update_data *ud, int subforce)
cp.dir = xstrdup(ud->sm_path);
prepare_submodule_repo_env(&cp.env);
28: 6d9bccb34c3 ! 29: a283ae61e6e submodule--helper: libify "must_die_on_failure" code paths (for die)
@@ Commit message
Continue the libification of codepaths that previously relied on
"must_die_on_failure". In these cases we've always been early aborting
- by calling die(), but as we know that these codpaths will properly
+ by calling die(), but as we know that these codepaths will properly
handle return codes of 128 to mean an early abort let's have them use
die_message() instead.
@@ Commit message
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data *ud)
+@@ builtin/submodule--helper.c: static int run_update_procedure(const struct update_data *ud)
*/
if (!is_tip_reachable(ud->sm_path, &ud->oid) &&
fetch_in_submodule(ud->sm_path, ud->depth, ud->quiet, &ud->oid))
29: d4b55f07a30 = 30: ba5c170c3a4 submodule--helper: check repo{_submodule,}_init() return values
30: 15c2490a978 ! 31: a0d71b4e8bb submodule--helper: libify more "die" paths for module_update()
@@ Commit message
char *remote_name = get_default_remote_submodule(update_data->sm_path);
const char *branch = remote_submodule_branch(update_data->sm_path);
+ We can safely remove the "!default_remote" case from sync_submodule(),
+ because our get_default_remote_submodule() function now returns a
+ die_message() on failure, so we can have it an dother callers check if
+ the exit code should be non-zero instead.
+
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
31: 1694ccfe882 ! 32: 3254a8ca6eb submodule--helper: libify even more "die" paths for module_update()
@@ Commit message
2022-03-04):
We were assuming that remote_submodule_branch() would always return
- on-NULL, but if the submodule_from_path() call in that function fails
+ non-NULL, but if the submodule_from_path() call in that function fails
we'll return NULL. See its introduction in
- 92bbe7ccf1f (submodule--helper: add remote-branch helper, 2016-08-03).
+ 92bbe7ccf1f (submodule--helper: add remote-branch helper,
+ 2016-08-03). I.e. we'd previously have segfaulted in the xstrfmt()
+ call in update_submodule() seen in the context.
Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
## builtin/submodule--helper.c ##
-@@ builtin/submodule--helper.c: static int run_update_procedure(struct update_data *ud)
+@@ builtin/submodule--helper.c: static int run_update_procedure(const struct update_data *ud)
return run_update_command(ud, subforce);
}
32: d133402462f = 33: 1e38bfa7f95 submodule--helper: fix bad config API usage
--
2.37.3.1420.g76f8a3d556c
next prev parent reply other threads:[~2022-08-31 23:18 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 ` [PATCH v3 00/32] submodule--helper: add tests, rm dead code, refactor & leak prep Ævar Arnfjörð Bjarmason
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 ` Ævar Arnfjörð Bjarmason [this message]
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-v4-00.33-00000000000-20220831T230519Z-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).