git-submodule add: Add --follow-branch option
authorW. Trevor King <wking@tremily.us>
Mon, 22 Oct 2012 14:48:24 +0000 (10:48 -0400)
committerW. Trevor King <wking@tremily.us>
Fri, 23 Nov 2012 15:56:32 +0000 (10:56 -0500)
commitb33413b4bd5c1407f0b4b6d62a888adaad5cba5e
treed3f2659dc459817d2ee7f965317173d35b65e7ba
parent8c7a786b6c8eae8eac91083cdc9a6e337bc133b0
git-submodule add: Add --follow-branch option

This option allows you to record a submodule.<name>.branch option in
.gitmodules.  Git does not currently use this configuration option for
anything, but users have used it for several things, so it makes sense
to add some syntactic sugar for initializing the value.

Current consumers:

Ævar uses this setting to designate the upstream branch for pulling
submodule updates:

  $ git submodule foreach 'git checkout $(git config --file $toplevel/.gitmodules submodule.$name.branch) && git pull'

as he describes in

  commit f030c96d8643fa0a1a9b2bd9c2f36a77721fb61f
  Author: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
  Date:   Fri May 21 16:10:10 2010 +0000

    git-submodule foreach: Add $toplevel variable

Gerrit uses the same interpretation for the setting, but because
Gerrit has direct access to the subproject repositories, it updates
the superproject repositories automatically when a subproject changes.
Gerrit also accepts the special value '.', which it expands into the
superproject's branch name.

Earlier version of this patch remained agnostic on the variable usage,
but this was deemed potentially confusing.  Future patches in this
series will extend the submodule command to use the stored value
internally.

[1] https://gerrit.googlesource.com/gerrit/+/master/Documentation/user-submodules.txt

Signed-off-by: W. Trevor King <wking@tremily.us>
Documentation/git-submodule.txt
Documentation/gitmodules.txt
git-submodule.sh
t/t7400-submodule-basic.sh