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

Re: git pull defaults for recursesubmodules

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Oct 23, 2018, 23:03 UTC
Message-ID
<20181023230324.GC6119@genre.crustytoothpaste.net>
In-Reply-To
<CAGshahkvn3fcyuqtD-WQE9tn+7rSad84+mtA_cfkz+t42xqPdw@mail.gmail.com>
On Wed, Oct 24, 2018 at 12:04:06AM +0300, Tommi Vainikainen wrote:
Show 14 quoted lines
> I configured my local git to fetch with recurseSubmodules = on-demand,
> which I found the most convenient setting. However then I noticed that
> I mostly use git pull actually to fetch from remotes, but git pull
> does not utilize any recurseSubmoddules setting now, or at least I
> could not find such.
> 
> I would expect that if git-config has fetch.recurseSubmodules set,
> also git pull should use this setting, or at least similar option such
> as pull.recurseSubmodules should be available. I'd prefer sharing
> fetch.recurseSubmodules setting here.
> 
> I've attached a minimal patch, which I believe implements this
> configuration usage, and a test case to show my expected behavior for
> git pull.

Typically, we prefer patches to be inline; descriptive content like this goes after the --- line in the patch, or in a cover letter.

Show 7 quoted lines
> From e4483ec5b3d9c38a6e30aa0ab9fa521cba582345 Mon Sep 17 00:00:00 2001
> From: Tommi Vainikainen <thv@iki.fi>
> Date: Tue, 23 Oct 2018 23:47:58 +0300
> Subject: [PATCH 1/1] pull: obey fetch.recurseSubmodules when fetching
> 
> "git pull" now uses same recurse-submodules config for fetching as "git
> fetch" by default if not overridden from command line.1
You have an extra '1" at the end of this line.
Also, missing sign-off.  See Documentation/SubmittingPatches.
Show 32 quoted lines
> diff --git a/builtin/pull.c b/builtin/pull.c
> index 798ecf7faf..ed39b0e8ed 100644
> --- a/builtin/pull.c
> +++ b/builtin/pull.c
> @@ -347,6 +347,9 @@ static int git_pull_config(const char *var, const char *value, void *cb)
>  		recurse_submodules = git_config_bool(var, value) ?
>  			RECURSE_SUBMODULES_ON : RECURSE_SUBMODULES_OFF;
>  		return 0;
> +	} else if (!strcmp(var, "fetch.recursesubmodules")) {
> +		recurse_submodules = parse_fetch_recurse_submodules_arg(var, value);
> +		return 0;
>  	}
>  	return git_default_config(var, value, cb);
>  }
> diff --git a/t/t5572-pull-submodule.sh b/t/t5572-pull-submodule.sh
> index f916729a12..579ae5c374 100755
> --- a/t/t5572-pull-submodule.sh
> +++ b/t/t5572-pull-submodule.sh
> @@ -75,6 +75,17 @@ test_expect_success "submodule.recurse option triggers recursive pull" '
>  	test_path_is_file super/sub/merge_strategy_2.t
>  '
>  
> +test_expect_success "fetch.recurseSubmodules=true triggers recursive pull" '
> +	test_commit -C child fetch_recurse_submodules &&
> +	git -C parent submodule update --remote &&
> +	git -C parent add sub &&
> +	git -C parent commit -m "update submodule" &&
> +
> +	git -C super config fetch.recurseSubmodules true &&
> +	git -C super pull --no-rebase &&
> +	test_path_is_file super/sub/fetch_recurse_submodules.t
> +'

Can we have a test that --no-recurse-submodules overrides fetch.recurseSubmodules?

-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
Previous: Tommi VainikainenNext: Tommi Vainikainen
Message 4 of 6 in “git pull defaults for recursesubmodules”
  1. Tommi VainikainenOct 23, 2018
  2. Stefan BellerOct 23, 2018
  3. Tommi VainikainenOct 24, 2018
  4. brian m. carlsonOct 23, 2018
  5. Tommi VainikainenOct 24, 2018
  6. Junio C HamanoOct 25, 2018

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.