1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-10-28 12:59:41 +01:00

submodule update: add convenience option --init

When a submodule is not initialized and you do not want to change the
defaults from .gitmodules anyway, you can now say

	$ git submodule update --init <name>

When "update" is called without --init on an uninitialized submodule,
a hint to use --init is printed.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Johannes Schindelin 2008-05-16 11:23:03 +01:00 committed by Junio C Hamano
parent b30317819d
commit be4d2c83b6
3 changed files with 25 additions and 2 deletions

View file

@ -11,7 +11,8 @@ SYNOPSIS
[verse] [verse]
'git-submodule' [--quiet] add [-b branch] [--] <repository> [<path>] 'git-submodule' [--quiet] add [-b branch] [--] <repository> [<path>]
'git-submodule' [--quiet] status [--cached] [--] [<path>...] 'git-submodule' [--quiet] status [--cached] [--] [<path>...]
'git-submodule' [--quiet] [init|update] [--] [<path>...] 'git-submodule' [--quiet] init [--] [<path>...]
'git-submodule' [--quiet] update [--init] [--] [<path>...]
'git-submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...] 'git-submodule' [--quiet] summary [--summary-limit <n>] [commit] [--] [<path>...]
@ -47,6 +48,10 @@ update::
Update the registered submodules, i.e. clone missing submodules and Update the registered submodules, i.e. clone missing submodules and
checkout the commit specified in the index of the containing repository. checkout the commit specified in the index of the containing repository.
This will make the submodules HEAD be detached. This will make the submodules HEAD be detached.
+
If the submodule is not yet initialized, and you just want to use the
setting as stored in .gitmodules, you can automatically initialize the
submodule with the --init option.
summary:: summary::
Show commit summary between the given commit (defaults to HEAD) and Show commit summary between the given commit (defaults to HEAD) and

View file

@ -5,7 +5,7 @@
# Copyright (c) 2007 Lars Hjemli # Copyright (c) 2007 Lars Hjemli
USAGE="[--quiet] [--cached] \ USAGE="[--quiet] [--cached] \
[add <repo> [-b branch]|status|init|update|summary [-n|--summary-limit <n>] [<commit>]] \ [add <repo> [-b branch]|status|init|update [-i|--init]|summary [-n|--summary-limit <n>] [<commit>]] \
[--] [<path>...]" [--] [<path>...]"
OPTIONS_SPEC= OPTIONS_SPEC=
. git-sh-setup . git-sh-setup
@ -271,6 +271,10 @@ cmd_update()
-q|--quiet) -q|--quiet)
quiet=1 quiet=1
;; ;;
-i|--init)
shift
cmd_init "$@" || return
;;
--) --)
shift shift
break break
@ -296,6 +300,7 @@ cmd_update()
# path have been specified # path have been specified
test "$#" != "0" && test "$#" != "0" &&
say "Submodule path '$path' not initialized" say "Submodule path '$path' not initialized"
say "Maybe you want to use 'update --init'?"
continue continue
fi fi

View file

@ -196,4 +196,17 @@ test_expect_success 'apply submodule diff' '
test -z "$D" test -z "$D"
' '
test_expect_success 'update --init' '
mv init init2 &&
git config -f .gitmodules submodule.example.url "$(pwd)/init2" &&
git config --remove-section submodule.example
git submodule update init > update.out &&
grep "not initialized" update.out &&
test ! -d init/.git &&
git submodule update --init init &&
test -d init/.git
'
test_done test_done