Re: [PATCH] documentation: update git-submodule documentation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Sorry about the confusion. Just so I'm 100% clear: the
`submodule.<name>.update` referencing a gitconfig and not gitmodules?


On Thu, Nov 3, 2022 at 8:17 AM Ævar Arnfjörð Bjarmason <avarab@xxxxxxxxx> wrote:
>
>
> On Thu, Nov 03 2022, James via GitGitGadget wrote:
>
> > From: James <jdm12989@xxxxxxxxx>
> >
> > Removes reference to custom code execution which is called out by
> > gitmodules as not allowed.
> >
> > Signed-off-by: James <jdm12989@xxxxxxxxx>
> > ---
> >     Update git-submodule.txt
> >
> >     Remove info about custom commands being allowed in the submodule update
> >     command to align with the gitmodules docs which states "For security
> >     reasons, the !command form is not accepted here."
> >
> > Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1401%2FEnochPrime%2Fsubmodule-docs-v1
> > Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1401/EnochPrime/submodule-docs-v1
> > Pull-Request: https://github.com/gitgitgadget/git/pull/1401
> >
> >  Documentation/git-submodule.txt | 6 ------
> >  1 file changed, 6 deletions(-)
> >
> > diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt
> > index 4d3ab6b9f92..b40ac72f753 100644
> > --- a/Documentation/git-submodule.txt
> > +++ b/Documentation/git-submodule.txt
> > @@ -163,12 +163,6 @@ checked out in the submodule.
> >  The following 'update' procedures are only available via the
> >  `submodule.<name>.update` configuration variable:
> >
> > -     custom command;; arbitrary shell command that takes a single
> > -         argument (the sha1 of the commit recorded in the
> > -         superproject) is executed. When `submodule.<name>.update`
> > -         is set to '!command', the remainder after the exclamation mark
> > -         is the custom command.
> > -
> >       none;; the submodule is not updated.
> >
> >  If the submodule is not yet initialized, and you just want to use the
>
> Hrm?
>
>         diff --git a/builtin/submodule--helper.c b/builtin/submodule--helper.c
>         index a7683d35299..80e897d5f29 100644
>         --- a/builtin/submodule--helper.c
>         +++ b/builtin/submodule--helper.c
>         @@ -2247,6 +2247,7 @@ static int run_update_command(const struct update_data *ud, int subforce)
>                 case SM_UPDATE_COMMAND:
>                         cp.use_shell = 1;
>                         strvec_push(&cp.args, ud->update_strategy.command);
>         +               BUG("unused??");
>                         break;
>                 default:
>                         BUG("unexpected update strategy type: %d",
>
> Will show you that this is used, i.e. this failure in
> t7406-submodule-update.sh:
>
>         [...]
>         + cd super
>         + git config submodule.submodule.update !git checkout
>         + cd super/submodule
>         + git reset --hard HEAD^
>         HEAD is now at 0c90624 upstream
>         + cd super
>         + cd submodule
>         + compare_head
>         + git rev-list --max-count=1 main
>         + sha_main=0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f
>         + git rev-list --max-count=1 HEAD
>         + sha_head=0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f
>         + test 0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f = 0c90624ab7f1aaa301d3bb79f60dcfed1ec4897f
>         + git submodule update submodule
>         BUG: builtin/submodule--helper.c:2250: unused??
>         Aborted
>
> I think what you may be confused by is that this isn't allowed in the
> in-tree .gitmodules file, and indeed you can see another BUG() in
> determine_submodule_update_strategy() for a panic if we'd ever get as
> far as reading "command" from there.
>
> But that's not what this part of the docs dicsusses, as the paragraph
> shown above the removed lines in the context notes.



-- 
James McCandlish




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux