[PATCH v2 0/4] Remove the_repository global for am, annotate, apply, archive builtins
- From
John Cai via GitGitGadget <gitgitgadget@gmail.com>
- Date
- Sep 30, 2024, 17:40 UTC
- Message-ID
- <pull.1788.v2.git.git.1727718030.gitgitgadget@gmail.com>
- In-Reply-To
- <pull.1788.git.git.1727185364.gitgitgadget@gmail.com>
Remove the_repository global variable for the annotate, apply, and archive bulitins.
Changes since V1:
* in patch 1, only pass in repo to the bulitin if the repo exists
John Cai (4): git: pass in repo for RUN_SETUP_GENTLY annotate: remove usage of the_repository global apply: remove the_repository global variable archive: remove the_repository global variable
builtin/annotate.c | 5 ++--- builtin/apply.c | 9 ++++----- builtin/archive.c | 5 ++--- git.c | 11 +++++++++-- 4 files changed, 17 insertions(+), 13 deletions(-)
base-commit: 3857aae53f3633b7de63ad640737c657387ae0c6 Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-git-1788%2Fjohn-cai%2Fjc%2Fremove-global-repo-a-v2 Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-git-1788/john-cai/jc/remove-global-repo-a-v2 Pull-Request: https://github.com/git/git/pull/1788
Range-diff vs v1:
1: eceb2d835be ! 1: 5d72c31c6f3 git: pass in repo for RUN_SETUP_GENTLY
@@ Commit message
Signed-off-by: John Cai <johncai86@gmail.com>
## git.c ##
+@@ git.c: static int handle_alias(int *argcp, const char ***argv)
+
+ static int run_builtin(struct cmd_struct *p, int argc, const char **argv, struct repository *repo)
+ {
+- int status, help;
++ int status, help, repo_exists;
+ struct stat st;
+ const char *prefix;
+ int run_setup = (p->option & (RUN_SETUP | RUN_SETUP_GENTLY));
+@@ git.c: static int run_builtin(struct cmd_struct *p, int argc, const char **argv, struct
+
+ if (run_setup & RUN_SETUP) {
+ prefix = setup_git_directory();
++ repo_exists = 1;
+ } else if (run_setup & RUN_SETUP_GENTLY) {
+ int nongit_ok;
+ prefix = setup_git_directory_gently(&nongit_ok);
++
++ if (!nongit_ok)
++ repo_exists = 1;
+ } else {
+ prefix = NULL;
+ }
@@ git.c: static int run_builtin(struct cmd_struct *p, int argc, const char **argv, struct
trace2_cmd_name(p->cmd);
@@ git.c: static int run_builtin(struct cmd_struct *p, int argc, const char **argv,
+ status = p->fn(argc,
+ argv,
+ prefix,
-+ ((p->option & RUN_SETUP) || (p->option & RUN_SETUP_GENTLY))? repo : NULL);
++ repo_exists ? repo : NULL);
validate_cache_entries(repo->index);
if (status)
2: 1bf2b017dd3 = 2: 2a29d113815 annotate: remove usage of the_repository global
3: 4ce463defa8 = 3: d64955a2e27 apply: remove the_repository global variable
4: f6c32ec609c = 4: 857291d7f7d archive: remove the_repository global variable-- gitgitgadget