All of lore.kernel.org
 help / color / mirror / Atom feed
From: Glen Choo <chooglen@google.com>
To: git@vger.kernel.org
Cc: "Glen Choo" <chooglen@google.com>,
	"Junio C Hamano" <gitster@pobox.com>,
	"Atharva Raykar" <raykar.ath@gmail.com>,
	"Emily Shaffer" <emilyshaffer@google.com>,
	"Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Josh Steadmon" <steadmon@google.com>
Subject: [PATCH v3 00/13] submodule: convert parts of 'update' to C
Date: Wed,  2 Mar 2022 16:57:14 -0800	[thread overview]
Message-ID: <20220303005727.69270-1-chooglen@google.com> (raw)
In-Reply-To: <20220301044132.39474-1-chooglen@google.com>

Original series: https://lore.kernel.org/git/20220210092833.55360-1-chooglen@google.com
(I've trimmed the cc list down to the 'most interested' parties)

Thanks for the input, Ævar :) This just fixes up a few small issues in
the previous version.

= Patch summary

- Patch 1 adds extra tests to "git submodule update" to make sure we
  don't break anything
- Patch 2 removes dead code that used to be part of "git submodule
  update"
- Patch 3 prepares for later changes by introducing the C function that
  will hold most of the newly converted code
- Patch 4 moves run-update-procedure's --suboid option into C
- Patch 5 moves ensure-core-worktree into C
- Patches 6-8 move run-update-procedure's --remote option into C
- Patches 9-11 move "git submodule update"'s --init into C
- Patches 12-13 move "git submodule update"'s --filter option into C

= Changes

Since v2:
- Patch 6: Fix a stale commit message that said 'in the next patch'.
- Patch 9: Fix an overly long line (spotted by Ævar in an older iteration of
  ar/submodule-update)
- Patch 12: Test for usage using test_expect_code
- Patch 13: Add missing spaces to the usage string

Since v1:
- Fix compilation error due to bad rebase
- Remove accidentally included tests
- Fix a NEEDSWORK (it was a leftover from ar/submodule-update)

Atharva Raykar (3):
  submodule--helper: get remote names from any repository
  submodule--helper: refactor get_submodule_displaypath()
  submodule--helper: allow setting superprefix for init_submodule()

Glen Choo (8):
  submodule--helper: remove update-module-mode
  submodule--helper: reorganize code for sh to C conversion
  submodule--helper run-update-procedure: remove --suboid
  submodule--helper: remove ensure-core-worktree
  submodule--helper run-update-procedure: learn --remote
  submodule--helper update-clone: learn --init
  submodule update: add tests for --filter
  submodule--helper update-clone: check for --filter and --init

Ævar Arnfjörð Bjarmason (2):
  submodule tests: test for init and update failure output
  submodule--helper: don't use bitfield indirection for parse_options()

 builtin/submodule--helper.c    | 248 +++++++++++++++++++--------------
 git-submodule.sh               |  54 +------
 t/t7406-submodule-update.sh    |  26 +++-
 t/t7408-submodule-reference.sh |  14 +-
 4 files changed, 183 insertions(+), 159 deletions(-)

Range-diff against v2:
 1:  6138f4682c =  1:  6138f4682c submodule tests: test for init and update failure output
 2:  6c83c78819 =  2:  6c83c78819 submodule--helper: remove update-module-mode
 3:  9524986096 =  3:  9524986096 submodule--helper: reorganize code for sh to C conversion
 4:  f42f3de2b7 =  4:  f42f3de2b7 submodule--helper run-update-procedure: remove --suboid
 5:  b0a0cae633 =  5:  b0a0cae633 submodule--helper: remove ensure-core-worktree
 6:  3bde7ccd61 !  6:  8dc7bc5894 submodule--helper: get remote names from any repository
    @@ Commit message
         submodule, all within the same process.
     
         We can now use this function to save an unnecessary subprocess spawn in
    -    `sync_submodule()`, and also in the next patch, which will require this
    -    functionality.
    +    `sync_submodule()`, and also in a subsequent patch, which will require
    +    this functionality.
     
         Mentored-by: Christian Couder <christian.couder@gmail.com>
         Mentored-by: Shourya Shukla <periperidip@gmail.com>
 7:  3b2caf7a35 =  7:  feaf9f45d8 submodule--helper: don't use bitfield indirection for parse_options()
 8:  81e9da8d42 =  8:  91e8e1a007 submodule--helper run-update-procedure: learn --remote
 9:  122da84ce4 !  9:  aba851e71e submodule--helper: refactor get_submodule_displaypath()
    @@ builtin/submodule--helper.c: static int resolve_relative_url_test(int argc, cons
      
     -/* the result should be freed by the caller. */
     -static char *get_submodule_displaypath(const char *path, const char *prefix)
    -+static char *do_get_submodule_displaypath(const char *path, const char *prefix, const char *super_prefix)
    ++static char *do_get_submodule_displaypath(const char *path,
    ++					  const char *prefix,
    ++					  const char *super_prefix)
      {
     -	const char *super_prefix = get_super_prefix();
     -
10:  fd52d6a2c3 = 10:  2155c049a2 submodule--helper: allow setting superprefix for init_submodule()
11:  9422c2ecac = 11:  03bbc39a06 submodule--helper update-clone: learn --init
12:  0a3e93998d ! 12:  e49b26ad94 submodule update: add tests for --filter
    @@ t/t7406-submodule-update.sh: test_expect_success 'submodule update --quiet passe
      '
      
     +test_expect_success 'submodule update --filter requires --init' '
    -+	test_must_fail git -C super submodule update --filter blob:none 2>err &&
    -+	grep "usage:" err
    ++	test_expect_code 129 git -C super submodule update --filter blob:none
     +'
     +
     +test_expect_success 'submodule update --filter sets partial clone settings' '
13:  6e1ef27191 ! 13:  c97c97948a submodule--helper update-clone: check for --filter and --init
    @@ builtin/submodule--helper.c: static int update_clone(int argc, const char **argv
      	const char *const git_submodule_helper_usage[] = {
     -		N_("git submodule--helper update-clone [--prefix=<path>] [<path>...]"),
     +		N_("git submodule [--quiet] update"
    -+		"[--init [--filter=<filter-spec>]] [--remote]"
    -+		"[-N|--no-fetch] [-f|--force]"
    -+		"[--checkout|--merge|--rebase]"
    -+		"[--[no-]recommend-shallow] [--reference <repository>]"
    -+		"[--recursive] [--[no-]single-branch] [--] [<path>...]"),
    ++		" [--init [--filter=<filter-spec>]] [--remote]"
    ++		" [-N|--no-fetch] [-f|--force]"
    ++		" [--checkout|--merge|--rebase]"
    ++		" [--[no-]recommend-shallow] [--reference <repository>]"
    ++		" [--recursive] [--[no-]single-branch] [--] [<path>...]"),
      		NULL
      	};
      	suc.prefix = prefix;

base-commit: 715d08a9e51251ad8290b181b6ac3b9e1f9719d7
-- 
2.33.GIT


  parent reply	other threads:[~2022-03-03  0:57 UTC|newest]

Thread overview: 75+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-03-01  0:08 [PATCH 00/13] submodule: convert parts of 'update' to C Glen Choo
2022-03-01  0:08 ` [PATCH 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-01  0:08 ` [PATCH 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-01  0:08 ` [PATCH 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-01  0:08 ` [PATCH 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-01  0:08 ` [PATCH 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-01  0:08 ` [PATCH 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-01  2:46   ` Junio C Hamano
2022-03-01  4:26     ` Glen Choo
2022-03-01  0:08 ` [PATCH 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-01  0:08 ` [PATCH 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-01  0:08 ` [PATCH 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-01  0:08 ` [PATCH 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-01  0:08 ` [PATCH 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-01  0:08 ` [PATCH 12/13] submodule update: add tests for --filter Glen Choo
2022-03-01  0:08 ` [PATCH 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-01  1:29 ` [PATCH 00/13] submodule: convert parts of 'update' to C Glen Choo
2022-03-01  4:41 ` [PATCH v2 " Glen Choo
2022-03-01  4:41   ` [PATCH v2 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-01  4:41   ` [PATCH v2 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-01  4:41   ` [PATCH v2 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-01  4:41   ` [PATCH v2 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-01  4:41   ` [PATCH v2 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-01  4:41   ` [PATCH v2 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-01  8:01     ` Ævar Arnfjörð Bjarmason
2022-03-01  4:41   ` [PATCH v2 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-01  4:41   ` [PATCH v2 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-01  4:41   ` [PATCH v2 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-01  8:05     ` Ævar Arnfjörð Bjarmason
2022-03-01  4:41   ` [PATCH v2 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-01  4:41   ` [PATCH v2 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-01  4:41   ` [PATCH v2 12/13] submodule update: add tests for --filter Glen Choo
2022-03-01  8:07     ` Ævar Arnfjörð Bjarmason
2022-03-01 18:30       ` Glen Choo
2022-03-01  4:41   ` [PATCH v2 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-01  7:21     ` Ævar Arnfjörð Bjarmason
2022-03-01  7:34       ` Junio C Hamano
2022-03-01 18:34         ` Glen Choo
2022-03-03 10:06           ` Ævar Arnfjörð Bjarmason
2022-03-03  0:57   ` Glen Choo [this message]
2022-03-03  0:57     ` [PATCH v3 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-03  0:57     ` [PATCH v3 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-03  0:57     ` [PATCH v3 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-03  0:57     ` [PATCH v3 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-03 21:09       ` Junio C Hamano
2022-03-03  0:57     ` [PATCH v3 05/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-03 21:25       ` Junio C Hamano
2022-03-04 21:27         ` Glen Choo
2022-03-03  0:57     ` [PATCH v3 06/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-03  0:57     ` [PATCH v3 07/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-03  0:57     ` [PATCH v3 08/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-03 21:35       ` Junio C Hamano
2022-03-04 21:29         ` Glen Choo
2022-03-03  0:57     ` [PATCH v3 09/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-03  0:57     ` [PATCH v3 10/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-03  0:57     ` [PATCH v3 11/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-03  0:57     ` [PATCH v3 12/13] submodule update: add tests for --filter Glen Choo
2022-03-03  0:57     ` [PATCH v3 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-03  9:58     ` [PATCH v3 00/13] submodule: convert parts of 'update' to C Ævar Arnfjörð Bjarmason
2022-03-03 21:41       ` Junio C Hamano
2022-03-05  0:13     ` [PATCH v4 " Glen Choo
2022-03-05  0:13       ` [PATCH v4 01/13] submodule tests: test for init and update failure output Glen Choo
2022-03-05  0:13       ` [PATCH v4 02/13] submodule--helper: remove update-module-mode Glen Choo
2022-03-05  0:13       ` [PATCH v4 03/13] submodule--helper: reorganize code for sh to C conversion Glen Choo
2022-03-05  0:13       ` [PATCH v4 04/13] submodule--helper run-update-procedure: remove --suboid Glen Choo
2022-03-05  0:13       ` [PATCH v4 05/13] submodule--helper: get remote names from any repository Glen Choo
2022-03-05  0:13       ` [PATCH v4 06/13] submodule--helper: don't use bitfield indirection for parse_options() Glen Choo
2022-03-05  0:13       ` [PATCH v4 07/13] submodule--helper run-update-procedure: learn --remote Glen Choo
2022-03-05  0:13       ` [PATCH v4 08/13] submodule--helper: refactor get_submodule_displaypath() Glen Choo
2022-03-05  0:13       ` [PATCH v4 09/13] submodule--helper: allow setting superprefix for init_submodule() Glen Choo
2022-03-05  0:13       ` [PATCH v4 10/13] submodule--helper update-clone: learn --init Glen Choo
2022-03-05  0:13       ` [PATCH v4 11/13] submodule--helper: remove ensure-core-worktree Glen Choo
2022-03-05  0:14       ` [PATCH v4 12/13] submodule update: add tests for --filter Glen Choo
2022-03-05  0:14       ` [PATCH v4 13/13] submodule--helper update-clone: check for --filter and --init Glen Choo
2022-03-05  0:40       ` [PATCH v4 00/13] submodule: convert parts of 'update' to C 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

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

  git send-email \
    --in-reply-to=20220303005727.69270-1-chooglen@google.com \
    --to=chooglen@google.com \
    --cc=avarab@gmail.com \
    --cc=emilyshaffer@google.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=raykar.ath@gmail.com \
    --cc=steadmon@google.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.