git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH] templates: make example pre-commit hook verify submodule commits exist

From
Junio C Hamano <gitster@pobox.com>
Date
May 4, 2009, 05:27 UTC
Message-ID
<7vzldt4euh.fsf@alter.siamese.dyndns.org>
In-Reply-To
<E1M0oxK-0002uG-RT@mail1.catalyst.net.nz>
Sam Vilain <sam.vilain@catalyst.net.nz> writes:
Show 10 quoted lines
> With submodules it can be quite easy to end up with a situation where the
> version in the supermodule doesn't exist in the submodule.  Add to the
> example pre-commit hook a script which checks before every commit whether
> the submodule commit is likely to exist at the URL defined in the
> .gitmodules file.
>
> Signed-off-by: Sam Vilain <sam.vilain@catalyst.net.nz>
> ---
>  This should be useful for those using submodules.  Perhaps it should also
>  have an equivalent in the 'git submodule' command.

If I am a developer who is not interested in any of the submodules in the project at all (i.e. I do not have any submodule checked out), my commits will never touch any of the submodules. In such a case, I shouldn't be forced to fetch/clone the submodule nor have a checkout.

Which means...
Show 10 quoted lines
> +# first, check that all submodule commits are available by a remote
> +# which has the same URL as the one they are listed in.
> +if [ -n "$GIT_WORK_TREE" ]
> +then
> +	cd "$GIT_WORK_TREE"
> +fi
> +
> +git ls-tree $(git write-tree) | grep commit |
> +while read mode type sha1 submodule
> +do

... the input fed to this while look utterly wrong. At least, you should be checking *new* commit that is introduced to the tree with this commit.

I didn't read the body of the while loop; no matter what it does, if its input is wrong, its end result cannot be correct.

Previous: Sam Vilain
Message 2 of 2 in “templates: make example pre-commit hook verify submodule commits exist”
  1. templates: make example pre-commit hook verify submodule commits existSam Vilain, May 4, 2009
  2. Junio C HamanoMay 4, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.