On 09/09/2024 16:53, Junio C Hamano wrote:
Phillip Wood <phillip.wood123@xxxxxxxxx> writes:
The only place `skipFetchAll` is currently documented is in this large
master list of configs that are easy to miss —
https://git-scm.com/docs/git-config.
We could perhaps expand the documentation of `git fetch --all` to
mention skipFetchAll
Like this (interdiff at the end)?
That looks good to me
Best Wishes
Phillip
--- >8 ---
Subject: [PATCH v2] doc: remote.*.skip{DefaultUpdate,FetchAll} stops prefetch
Back when 7cc91a2f (Add the configuration option skipFetchAll,
2009-11-09) added for the sole purpose of adding skipFetchAll as a
synonym to skipDefaultUpdate, there was no explanation about the
reason why it was needed., but these two configuration variables
mean exactly the same thing.
Also, when we taught the "prefetch" task to "git maintenance" later,
we did make it pay attention to the setting, but we forgot to
document it.
Document these variables as synonyms that collectively implements
the last-one-wins semantics, and also clarify that the prefetch task
is also controlled by this variable.
Signed-off-by: Junio C Hamano <gitster@xxxxxxxxx>
---
Documentation/config/remote.txt | 13 +++++++------
Documentation/fetch-options.txt | 5 +++--
Documentation/git-maintenance.txt | 3 +++
3 files changed, 13 insertions(+), 8 deletions(-)
diff --git a/Documentation/config/remote.txt b/Documentation/config/remote.txt
index 8efc53e836..36e771556c 100644
--- a/Documentation/config/remote.txt
+++ b/Documentation/config/remote.txt
@@ -42,14 +42,15 @@ remote.<name>.mirror::
as if the `--mirror` option was given on the command line.
remote.<name>.skipDefaultUpdate::
- If true, this remote will be skipped by default when updating
- using linkgit:git-fetch[1] or the `update` subcommand of
- linkgit:git-remote[1].
+ A deprecated synonym to `remote.<name>.skipFetchAll` (if
+ both are set in the configuration files with different
+ values, the value of the last occurrence will be used).
remote.<name>.skipFetchAll::
- If true, this remote will be skipped by default when updating
- using linkgit:git-fetch[1] or the `update` subcommand of
- linkgit:git-remote[1].
+ If true, this remote will be skipped when updating
+ using linkgit:git-fetch[1], the `update` subcommand of
+ linkgit:git-remote[1], and ignored by the prefetch task
+ of `git maitenance`.
remote.<name>.receivepack::
The default program to execute on the remote side when pushing. See
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index e22b217fba..80838fe37e 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -1,6 +1,7 @@
--[no-]all::
- Fetch all remotes. This overrides the configuration variable
- `fetch.all`.
+ Fetch all remotes, except for the ones that has the
+ `remote.<name>.skipFetchAll` configuration variable set.
+ This overrides the configuration variable fetch.all`.
-a::
--append::
diff --git a/Documentation/git-maintenance.txt b/Documentation/git-maintenance.txt
index 51d0f7e94b..9d96819133 100644
--- a/Documentation/git-maintenance.txt
+++ b/Documentation/git-maintenance.txt
@@ -107,6 +107,9 @@ with the prefetch task, the objects necessary to complete a later real fetch
would already be obtained, making the real fetch faster. In the ideal case,
it will just become an update to a bunch of remote-tracking branches without
any object transfer.
++
+The `remote.<name>.skipFetchAll` configuration can be used to
+exclude a particular remote from getting prefetched.
gc::
Clean up unnecessary files and optimize the local repository. "GC"
Interdiff:
diff --git a/Documentation/fetch-options.txt b/Documentation/fetch-options.txt
index e22b217fba..80838fe37e 100644
--- a/Documentation/fetch-options.txt
+++ b/Documentation/fetch-options.txt
@@ -1,6 +1,7 @@
--[no-]all::
- Fetch all remotes. This overrides the configuration variable
- `fetch.all`.
+ Fetch all remotes, except for the ones that has the
+ `remote.<name>.skipFetchAll` configuration variable set.
+ This overrides the configuration variable fetch.all`.
-a::
--append::