On Fri, May 16, 2008 at 4:23 PM, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > > 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> This seems to be quite useful, I always wanted to do it in one step. > > When "update" is called without --init on an uninitialized submodule, > a hint to use --init is printed. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > --- > > I know this is relatively late in the cycle, but this patch was > done on users' requests, and I think it is unobtrusive, yet > helpful. > > Documentation/git-submodule.txt | 7 ++++++- > git-submodule.sh | 7 ++++++- > t/t7400-submodule-basic.sh | 13 +++++++++++++ > 3 files changed, 25 insertions(+), 2 deletions(-) > > diff --git a/Documentation/git-submodule.txt b/Documentation/git-submodule.txt > index 6ffd896..0668f29 100644 > --- a/Documentation/git-submodule.txt > +++ b/Documentation/git-submodule.txt > @@ -11,7 +11,8 @@ SYNOPSIS > [verse] > 'git-submodule' [--quiet] add [-b branch] [--] <repository> [<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>...] > > > @@ -47,6 +48,10 @@ update:: > Update the registered submodules, i.e. clone missing submodules and > checkout the commit specified in the index of the containing repository. > 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:: > Show commit summary between the given commit (defaults to HEAD) and > diff --git a/git-submodule.sh b/git-submodule.sh > index 67f7a28..e681818 100755 > --- a/git-submodule.sh > +++ b/git-submodule.sh > @@ -5,7 +5,7 @@ > # Copyright (c) 2007 Lars Hjemli > > 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>...]" > OPTIONS_SPEC= > . git-sh-setup > @@ -272,6 +272,10 @@ cmd_update() > -q|--quiet) > quiet=1 > ;; > + -i|--init) > + shift > + cmd_init "$@" || return > + ;; > --) > shift > break > @@ -297,6 +301,7 @@ cmd_update() > # path have been specified > test "$#" != "0" && > say "Submodule path '$path' not initialized" > + say "Maybe you want to use 'update --init'?" > continue > fi > > diff --git a/t/t7400-submodule-basic.sh b/t/t7400-submodule-basic.sh > index 2ef85a8..6c7b902 100755 > --- a/t/t7400-submodule-basic.sh > +++ b/t/t7400-submodule-basic.sh > @@ -196,4 +196,17 @@ test_expect_success 'apply submodule diff' ' > 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 > -- > 1.5.5.1.425.g5f464.dirty > > -- > To unsubscribe from this list: send the line "unsubscribe git" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Imran M Yousuf Entrepreneur & Software Engineer Smart IT Engineering Dhaka, Bangladesh Email: imran@xxxxxxxxxxxxxxxxxxxxxx Mobile: +880-1711402557 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html