> On 18 Aug 2017, at 19:16, Stefan Beller <sbel...@google.com> wrote:
> 
>> In the past "submodule.<name>.update=none" was an easy way
>> to selectively disable certain Submodules.
>> 
>> How would I do this with Git 2.14?
> 
>    submodule.<name>.active = false

That's what I thought after your first response. However,
this test case fails for me, too:


diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh
index dcac364c5f..24f9729015 100755
--- a/t/t7400-submodule-basic.sh
+++ b/t/t7400-submodule-basic.sh
@@ -1289,4 +1289,19 @@ test_expect_success 'init properly sets the config' '
        test_must_fail git -C multisuper_clone config --get 
submodule.sub1.active
'

+test_expect_success 'submodule update and git pull with disabled submodule' '
+       test_when_finished "rm -rf multisuper_clone" &&
+       pwd=$(pwd) &&
+       git clone file://"$pwd"/multisuper multisuper_clone &&
+       (
+               cd multisuper_clone &&
+               git config --local submodule.sub0.update none &&
+               git config --local submodule.sub0.active false &&
+               git submodule update --init --recursive &&
+               git pull --recurse-submodules &&
+               git submodule status | cut -c 1,43- >actual
+       ) &&
+       ls &&
+       test_cmp expect multisuper_clone/actual
+'
+
test_done


Here is the relevant part of the Git config:

        [submodule "sub0"]
                update = none
                active = false

Is this a bug?


>> My gut feeling is that all commands should respect the
>> "submodule.<name>.update=none" setting.
> 
> Well my gut feeling was that the "update" part of the name
> reponds to the subcommand, not the generic action.

I see. But wouldn't that be inconsistent with the config
"active" then? Following that logic "active" would only
respond to the (non-existent) "active" subcommand, no?


> For example when you set update=none, git-status,
> recursive git-diff still reported the submodule.

My understanding is this:

(1) "active" controls if a submodule is considered by
    Git at all.

(2) "update" controls how and if the submodule pointer
    modified

Is this your intention? What would be the use case for
"active=true" and "update=none"? 


- Lars

Reply via email to