mbox series

[v4,00/13] submodule: convert parts of 'update' to C

Message ID 20220305001401.20888-1-chooglen@google.com (mailing list archive)
Headers show
Series submodule: convert parts of 'update' to C | expand

Message

Glen Choo March 5, 2022, 12:13 a.m. UTC
Original series: https://lore.kernel.org/git/20220210092833.55360-1-chooglen@google.com

= 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 v3:
- Move 'remove ensure-core-worktree' towards the end (see
  xmqqbkymaftr.fsf@gitster.g).
- Fix typo

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 run-update-procedure: learn --remote
  submodule--helper update-clone: learn --init
  submodule--helper: remove ensure-core-worktree
  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 v3:
 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:  533de2c787 submodule--helper run-update-procedure: remove --suboid
    @@ Commit message
         submodule--helper run-update-procedure: remove --suboid
     
         Teach run-update-procedure to determine the oid of the submodule's HEAD
    -    instead of doing it in git-subomdule.sh.
    +    instead of doing it in git-submodule.sh.
     
         Signed-off-by: Glen Choo <chooglen@google.com>
     
 6:  8dc7bc5894 =  5:  bcc90c332b submodule--helper: get remote names from any repository
 7:  feaf9f45d8 =  6:  93dd851882 submodule--helper: don't use bitfield indirection for parse_options()
 8:  91e8e1a007 =  7:  1aff3622bc submodule--helper run-update-procedure: learn --remote
 9:  aba851e71e =  8:  c59d6a9b3c submodule--helper: refactor get_submodule_displaypath()
10:  2155c049a2 =  9:  28bc5887ea submodule--helper: allow setting superprefix for init_submodule()
11:  03bbc39a06 = 10:  364d996481 submodule--helper update-clone: learn --init
 5:  b0a0cae633 ! 11:  3b7d961ade submodule--helper: remove ensure-core-worktree
    @@ Commit message
         submodule--helper: remove ensure-core-worktree
     
         Move the logic of "git submodule--helper ensure-core-worktree" into
    -    run-update-procedure. Since the ensure-core-worktree command is
    -    obsolete, remove it.
    +    run-update-procedure, and since this makes the ensure-core-worktree
    +    command obsolete, remove it.
    +
    +    As a result, the order of two operations in git-submodule.sh is
    +    reversed: 'set the value of core.worktree' now happens after the call to
    +    "git submodule--helper relative-path". This is safe - "relative-path"
    +    does not depend on the value of core.worktree.
     
         Signed-off-by: Glen Choo <chooglen@google.com>
     
12:  e49b26ad94 = 12:  70e00d294c submodule update: add tests for --filter
13:  c97c97948a = 13:  ed7f8d57dc submodule--helper update-clone: check for --filter and --init

base-commit: 715d08a9e51251ad8290b181b6ac3b9e1f9719d7

Comments

Junio C Hamano March 5, 2022, 12:40 a.m. UTC | #1
Glen Choo <chooglen@google.com> writes:

> Original series: https://lore.kernel.org/git/20220210092833.55360-1-chooglen@google.com
>
> = 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

Looking good.  Will queue.

Let's see if there are further comments before declaring victory and
merging it down to 'next' shortly.

Thanks.