aboutsummaryrefslogtreecommitdiff
path: root/Documentation
diff options
context:
space:
mode:
authorJens Lehmann <Jens.Lehmann@web.de>2010-11-12 13:54:52 +0100
committerJunio C Hamano <gitster@pobox.com>2010-11-12 15:06:03 -0800
commit7dce19d374a37932e9d4c3a6202af407cf5114eb (patch)
tree4e26a11bba6c571c41fef1e625f61edfa62cbb12 /Documentation
parent515cc0101943b766fde7aa894827119e332ec033 (diff)
downloadgit-7dce19d374a37932e9d4c3a6202af407cf5114eb.tar.gz
git-7dce19d374a37932e9d4c3a6202af407cf5114eb.tar.xz
fetch/pull: Add the --recurse-submodules option
Until now you had to call "git submodule update" (without -N|--no-fetch option) or something like "git submodule foreach git fetch" to fetch new commits in populated submodules from their remote. This could lead to "(commits not present)" messages in the output of "git diff --submodule" (which is used by "git gui" and "gitk") after fetching or pulling new commits in the superproject and is an obstacle for implementing recursive checkout of submodules. Also "git submodule update" cannot fetch changes when disconnected, so it was very easy to forget to fetch the submodule changes before disconnecting only to discover later that they are needed. This patch adds the "--recurse-submodules" option to recursively fetch each populated submodule from the url configured in the .git/config of the submodule at the end of each "git fetch" or during "git pull" in the superproject. The submodule paths are taken from the index. The hidden option "--submodule-prefix" is added to "git fetch" to be able to print out the full paths of nested submodules. Signed-off-by: Jens Lehmann <Jens.Lehmann@web.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation')
-rw-r--r--Documentation/fetch-options.txt10
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index 9333c42c5..7f8d562ef 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -60,6 +60,16 @@ endif::git-pull[]
flag lets all tags and their associated objects be
downloaded.
+--recurse-submodules::
+ Use this option to fetch new commits of all populated submodules too.
+
+ifndef::git-pull[]
+--submodule-prefix=<path>::
+ Prepend <path> to paths printed in informative messages
+ such as "Fetching submodule foo". This option is used
+ internally when recursing over submodules.
+endif::git-pull[]
+
-u::
--update-head-ok::
By default 'git fetch' refuses to update the head which