diff options
author | Junio C Hamano <gitster@pobox.com> | 2023-05-17 10:11:41 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2023-05-17 10:11:41 -0700 |
commit | 67a3b2b39f638872531324e03217fa58f7b9ad1e (patch) | |
tree | 5c4e9c7b9e2c0efc9c9f9e7e70fb11b104f95890 /git.c | |
parent | 3307f7dde2ae8f5281d0782f7291a073c9b1cdc2 (diff) | |
parent | 44451a2e5eec5360378be23e2cdbd9ecee49e14e (diff) |
Merge branch 'jc/attr-source-tree'
"git --attr-source=<tree> cmd $args" is a new way to have any
command to read attributes not from the working tree but from the
given tree object.
* jc/attr-source-tree:
attr: teach "--attr-source=<tree>" global option to "git"
Diffstat (limited to 'git.c')
-rw-r--r-- | git.c | 16 |
1 files changed, 16 insertions, 0 deletions
@@ -9,6 +9,7 @@ #include "alias.h" #include "replace-object.h" #include "setup.h" +#include "attr.h" #include "shallow.h" #include "trace.h" #include "trace2.h" @@ -314,6 +315,21 @@ static int handle_options(const char ***argv, int *argc, int *envchanged) } else { exit(list_cmds(cmd)); } + } else if (!strcmp(cmd, "--attr-source")) { + if (*argc < 2) { + fprintf(stderr, _("no attribute source given for --attr-source\n" )); + usage(git_usage_string); + } + setenv(GIT_ATTR_SOURCE_ENVIRONMENT, (*argv)[1], 1); + if (envchanged) + *envchanged = 1; + (*argv)++; + (*argc)--; + } else if (skip_prefix(cmd, "--attr-source=", &cmd)) { + set_git_attr_source(cmd); + setenv(GIT_ATTR_SOURCE_ENVIRONMENT, cmd, 1); + if (envchanged) + *envchanged = 1; } else { fprintf(stderr, _("unknown option: %s\n"), cmd); usage(git_usage_string); |