git-submodule update: Add --branch option
authorW. Trevor King <wking@tremily.us>
Mon, 26 Nov 2012 19:38:32 +0000 (14:38 -0500)
committerW. Trevor King <wking@tremily.us>
Mon, 26 Nov 2012 20:29:13 +0000 (15:29 -0500)
commit95edff1c97c513c555652014f9c2bbf61c8e7560
tree18de65073955cf41828ae8178654422555e450bf
parent6734714e90064b3932126565e3027d7edcf45d51
git-submodule update: Add --branch option

This allows users to checkout the current
superproject-recorded-submodule-sha as a branch, avoiding the detached
head state that the standard submodule update creates.  This may be
useful for the existing --rebase/--merge workflows which already avoid
detached heads.

It is also useful if you want easy tracking of upstream branches.  The
particular upstream branch to be tracked is configured locally with
.git/modules/<name>/config.  With the new option Ævar's suggested

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

reduces to a

  $ git submodule update --branch

after each supermodule .gitmodules edit, and a

  $ git submodule foreach 'git pull'

whenever you feel like updating the submodules.  Your still on you're
own to commit (or not) the updated submodule hashes in the
superproject's .gitmodules.

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