mirror of
https://github.com/git/git.git
synced 2026-04-12 01:40:10 +02:00
Merge branch 'jl/submodule-fetch-on-demand'
* jl/submodule-fetch-on-demand: fetch/pull: Describe --recurse-submodule restrictions in the BUGS section submodule update: Don't fetch when the submodule commit is already present fetch/pull: Don't recurse into a submodule when commits are already present Submodules: Add 'on-demand' value for the 'fetchRecurseSubmodule' option config: teach the fetch.recurseSubmodules option the 'on-demand' value fetch/pull: Add the 'on-demand' value to the --recurse-submodules option fetch/pull: recurse into submodules when necessary Conflicts: builtin/fetch.c submodule.c
This commit is contained in:
@@ -897,9 +897,13 @@ diff.wordRegex::
|
||||
characters are *ignorable* whitespace.
|
||||
|
||||
fetch.recurseSubmodules::
|
||||
A boolean value which changes the behavior for fetch and pull, the
|
||||
default is to not recursively fetch populated submodules unless
|
||||
configured otherwise.
|
||||
This option can be either set to a boolean value or to 'on-demand'.
|
||||
Setting it to a boolean changes the behavior of fetch and pull to
|
||||
unconditionally recurse into submodules when set to true or to not
|
||||
recurse at all when set to false. When set to 'on-demand' (the default
|
||||
value), fetch and pull will only recurse into a populated submodule
|
||||
when its superproject retrieves a commit that updates the submodule's
|
||||
reference.
|
||||
|
||||
fetch.unpackLimit::
|
||||
If the number of objects fetched over the git native
|
||||
@@ -1823,7 +1827,7 @@ submodule.<name>.update::
|
||||
linkgit:git-submodule[1] and linkgit:gitmodules[5] for details.
|
||||
|
||||
submodule.<name>.fetchRecurseSubmodules::
|
||||
This option can be used to enable/disable recursive fetching of this
|
||||
This option can be used to control recursive fetching of this
|
||||
submodule. It can be overridden by using the --[no-]recurse-submodules
|
||||
command line option to "git fetch" and "git pull".
|
||||
This setting will override that from in the linkgit:gitmodules[5]
|
||||
|
||||
@@ -65,14 +65,33 @@ ifndef::git-pull[]
|
||||
specified with the remote.<name>.tagopt setting. See
|
||||
linkgit:git-config[1].
|
||||
|
||||
--[no-]recurse-submodules::
|
||||
This option controls if new commits of all populated submodules should
|
||||
be fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).
|
||||
--recurse-submodules[=yes|on-demand|no]::
|
||||
This option controls if and under what conditions new commits of
|
||||
populated submodules should be fetched too. It can be used as a
|
||||
boolean option to completely disable recursion when set to 'no' or to
|
||||
unconditionally recurse into all populated submodules when set to
|
||||
'yes', which is the default when this option is used without any
|
||||
value. Use 'on-demand' to only recurse into a populated submodule
|
||||
when the superproject retrieves a commit that updates the submodule's
|
||||
reference to a commit that isn't already in the local submodule
|
||||
clone.
|
||||
|
||||
--no-recurse-submodules::
|
||||
Disable recursive fetching of submodules (this has the same effect as
|
||||
using the '--recurse-submodules=no' option).
|
||||
|
||||
--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.
|
||||
|
||||
--recurse-submodules-default=[yes|on-demand]::
|
||||
This option is used internally to temporarily provide a
|
||||
non-negative default value for the --recurse-submodules
|
||||
option. All other methods of configuring fetch's submodule
|
||||
recursion (such as settings in linkgit:gitmodules[5] and
|
||||
linkgit:git-config[1]) override this option, as does
|
||||
specifying --[no-]recurse-submodules directly.
|
||||
endif::git-pull[]
|
||||
|
||||
-u::
|
||||
|
||||
@@ -76,6 +76,15 @@ The `pu` branch will be updated even if it is does not fast-forward,
|
||||
because it is prefixed with a plus sign; `tmp` will not be.
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
Using --recurse-submodules can only fetch new commits in already checked
|
||||
out submodules right now. When e.g. upstream added a new submodule in the
|
||||
just fetched commits of the superproject the submodule itself can not be
|
||||
fetched, making it impossible to check out that submodule later without
|
||||
having to do a fetch again. This is expected to be fixed in a future git
|
||||
version.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-pull[1]
|
||||
|
||||
@@ -84,7 +84,7 @@ must be given before the options meant for 'git fetch'.
|
||||
--verbose::
|
||||
Pass --verbose to git-fetch and git-merge.
|
||||
|
||||
--[no-]recurse-submodules::
|
||||
--[no-]recurse-submodules[=yes|on-demand|no]::
|
||||
This option controls if new commits of all populated submodules should
|
||||
be fetched too (see linkgit:git-config[1] and linkgit:gitmodules[5]).
|
||||
That might be necessary to get the data needed for merging submodule
|
||||
@@ -220,6 +220,15 @@ If you tried a pull which resulted in a complex conflicts and
|
||||
would want to start over, you can recover with 'git reset'.
|
||||
|
||||
|
||||
BUGS
|
||||
----
|
||||
Using --recurse-submodules can only fetch new commits in already checked
|
||||
out submodules right now. When e.g. upstream added a new submodule in the
|
||||
just fetched commits of the superproject the submodule itself can not be
|
||||
fetched, making it impossible to check out that submodule later without
|
||||
having to do a fetch again. This is expected to be fixed in a future git
|
||||
version.
|
||||
|
||||
SEE ALSO
|
||||
--------
|
||||
linkgit:git-fetch[1], linkgit:git-merge[1], linkgit:git-config[1]
|
||||
|
||||
@@ -45,12 +45,12 @@ submodule.<name>.update::
|
||||
the '--merge' or '--rebase' options.
|
||||
|
||||
submodule.<name>.fetchRecurseSubmodules::
|
||||
This option can be used to enable/disable recursive fetching of this
|
||||
This option can be used to control recursive fetching of this
|
||||
submodule. If this option is also present in the submodules entry in
|
||||
.git/config of the superproject, the setting there will override the
|
||||
one found in .gitmodules.
|
||||
Both settings can be overridden on the command line by using the
|
||||
"--[no-]recurse-submodules" option to "git fetch" and "git pull"..
|
||||
"--[no-]recurse-submodules" option to "git fetch" and "git pull".
|
||||
|
||||
submodule.<name>.ignore::
|
||||
Defines under what circumstances "git status" and the diff family show
|
||||
|
||||
Reference in New Issue
Block a user