diff options
author | Junio C Hamano <gitster@pobox.com> | 2024-03-07 15:59:40 -0800 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2024-03-07 15:59:40 -0800 |
commit | 76d1cd8e5ec07889db43c15222d5632b90f525b2 (patch) | |
tree | 824525001027b488aab273a9af4792b436c469ea /builtin | |
parent | 2c206fc82abb3ae3d8a5fb5b3c07c1a933007f31 (diff) | |
parent | a4324babe679352a801310f8e30f3cbcd9c1f16b (diff) | |
download | git-76d1cd8e5ec07889db43c15222d5632b90f525b2.tar.gz |
Merge branch 'cc/rev-list-allow-missing-tips'
"git rev-list --missing=print" has learned to optionally take
"--allow-missing-tips", which allows the objects at the starting
points to be missing.
* cc/rev-list-allow-missing-tips:
revision: fix --missing=[print|allow*] for annotated tags
rev-list: allow missing tips with --missing=[print|allow*]
t6022: fix 'test' style and 'even though' typo
oidset: refactor oidset_insert_from_set()
revision: clarify a 'return NULL' in get_reference()
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/rev-list.c | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/builtin/rev-list.c b/builtin/rev-list.c index b3f4783858..ec455aa972 100644 --- a/builtin/rev-list.c +++ b/builtin/rev-list.c @@ -545,6 +545,18 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix) * * Let "--missing" to conditionally set fetch_if_missing. */ + /* + * NEEDSWORK: These loops that attempt to find presence of + * options without understanding that the options they are + * skipping are broken (e.g., it would not know "--grep + * --exclude-promisor-objects" is not triggering + * "--exclude-promisor-objects" option). We really need + * setup_revisions() to have a mechanism to allow and disallow + * some sets of options for different commands (like rev-list, + * replay, etc). Such a mechanism should do an early parsing + * of options and be able to manage the `--missing=...` and + * `--exclude-promisor-objects` options below. + */ for (i = 1; i < argc; i++) { const char *arg = argv[i]; if (!strcmp(arg, "--exclude-promisor-objects")) { @@ -753,8 +765,12 @@ int cmd_rev_list(int argc, const char **argv, const char *prefix) if (arg_print_omitted) oidset_init(&omitted_objects, DEFAULT_OIDSET_SIZE); - if (arg_missing_action == MA_PRINT) + if (arg_missing_action == MA_PRINT) { oidset_init(&missing_objects, DEFAULT_OIDSET_SIZE); + /* Add missing tips */ + oidset_insert_from_set(&missing_objects, &revs.missing_commits); + oidset_clear(&revs.missing_commits); + } traverse_commit_list_filtered( &revs, show_commit, show_object, &info, |