# [PATCH] Make 'submodule update' honor the 'update' setting in .gitmodules.

2 messages from 2009-08-06 to 2009-08-07. Participants: Mikhail Glushenkov, Junio C Hamano.
Thread: https://gitlist.dev/t/20420

## Mikhail Glushenkov, 2009-08-06 03:56

Subject: [PATCH] Make 'submodule update' honor the 'update' setting in .gitmodules.
Message-ID: <1249530977-17501-1-git-send-email-foldr@codedgers.com>
URL: https://gitlist.dev/e/1249530977-17501-1-git-send-email-foldr%40codedgers.com

```
Make the 'submodule update' command honor the 'submodule.$path.update' setting
in .gitmodules unless this setting is overridden in '.git/config' or with
--rebase/--merge options.

Signed-off-by: Mikhail Glushenkov <foldr@codedgers.com>
---
 git-submodule.sh |    9 +++++++++
 1 files changed, 9 insertions(+), 0 deletions(-)

diff --git a/git-submodule.sh b/git-submodule.sh
index ebed711..636023a 100755
--- a/git-submodule.sh
+++ b/git-submodule.sh
@@ -372,6 +372,15 @@ cmd_update()
 		name=$(module_name "$path") || exit
 		url=$(git config submodule."$name".url)
 		update_module=$(git config submodule."$name".update)
+
+		if test -z "$update_module"
+		then
+		    update_module="$(git config -f .gitmodules submodule."$name".update)"
+		    test -z "$update_module" ||
+		    git config submodule."$name".update "$update_module" ||
+		    die "Failed to register update mode for submodule path '$path'"
+		fi
+
 		if test -z "$url"
 		then
 			# Only mention uninitialized submodules when its
-- 
1.6.4

```

## Junio C Hamano, 2009-08-07 21:54

Subject: Re: [PATCH] Make 'submodule update' honor the 'update' setting in .gitmodules.
Message-ID: <7veirns30y.fsf@alter.siamese.dyndns.org>
URL: https://gitlist.dev/e/7veirns30y.fsf%40alter.siamese.dyndns.org
In-Reply-To: <1249530977-17501-1-git-send-email-foldr@codedgers.com>

```
Mikhail Glushenkov <foldr@codedgers.com> writes:

> Make the 'submodule update' command honor the 'submodule.$path.update' setting
> in .gitmodules unless this setting is overridden in '.git/config' or with
> --rebase/--merge options.

I haven't been involved in recent updates to "git submodule", but the
change in this patch feels somewhat wrong.

The contents of in-tree .gitmodules are meant to be consulted to only
prime the settings in .git/config, and after that they are never used
without user's explicit concent (e.g. "sync").  At least that is the way I
understand how the current "git submodule" command is designed.

This change actively breaks the pattern.  It makes sense to set up values
for "submodule.*.update" when the defaults suggested by the project are
copied out of .gitmodules to prime .git/config upon "submodule init", but
not at runtime in "update" command like this.

I am puzzled.  What problem are you trying to solve?

"submodule init" seems to already copy "update" setting from .gitmodules
to .git/config.  At least, it seems to have a code to try to do so.

Perhaps you would want to (1) add the "submodule.*.update" to the set of
configurations to be copied upon "sync", not just URL? and (2) add a way
to allow users to inspect how values in .git/config and .gitmodules are
different, and update .git/config with selected values, possibly in an
interactive manner?

```
