From: Junio C Hamano Date: Thu, 8 Feb 2024 23:17:31 +0000 (-0800) Subject: git: --no-lazy-fetch option X-Git-Tag: v2.45.0-rc0~134^2~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c784b0a5b991cc8ee179b8f3a8fc0b762708947d;p=thirdparty%2Fgit.git git: --no-lazy-fetch option Sometimes, especially during tests of low level machinery, it is handy to have a way to disable lazy fetching of objects. This allows us to say, for example, "git cat-file -e ", to see if the object is locally available. Signed-off-by: Junio C Hamano --- diff --git a/Documentation/git.txt b/Documentation/git.txt index 2535a30194..95f451b22b 100644 --- a/Documentation/git.txt +++ b/Documentation/git.txt @@ -177,6 +177,11 @@ If you just want to run git as if it was started in `` then use Do not use replacement refs to replace Git objects. See linkgit:git-replace[1] for more information. +--no-lazy-fetch:: + Do not fetch missing objects from the promisor remote on + demand. Useful together with `git cat-file -e ` to + see if the object is locally available. + --literal-pathspecs:: Treat pathspecs literally (i.e. no globbing, no pathspec magic). This is equivalent to setting the `GIT_LITERAL_PATHSPECS` environment diff --git a/git.c b/git.c index c67e44dd82..28e8bf7497 100644 --- a/git.c +++ b/git.c @@ -4,6 +4,7 @@ #include "exec-cmd.h" #include "gettext.h" #include "help.h" +#include "object-file.h" #include "pager.h" #include "read-cache-ll.h" #include "run-command.h" @@ -186,6 +187,8 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) use_pager = 0; if (envchanged) *envchanged = 1; + } else if (!strcmp(cmd, "--no-lazy-fetch")) { + fetch_if_missing = 0; } else if (!strcmp(cmd, "--no-replace-objects")) { disable_replace_refs(); setenv(NO_REPLACE_OBJECTS_ENVIRONMENT, "1", 1);