diff options
author | Junio C Hamano <gitster@pobox.com> | 2020-01-07 01:17:51 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2020-01-07 01:17:51 +0300 |
commit | c20d4fd44a9f9016341eb5971a153b5ad542718c (patch) | |
tree | 2862b27e9d8670af7c26dc1f444b91ee4de6e1d5 /builtin | |
parent | a578ef9e63a2f53ada00beb9d75b23e68061b331 (diff) | |
parent | 4fd683b6a35eabd23dd5183da7f654a1e1f00325 (diff) |
Merge branch 'ds/sparse-list-in-cone-mode'
"git sparse-checkout list" subcommand learned to give its output in
a more concise form when the "cone" mode is in effect.
* ds/sparse-list-in-cone-mode:
sparse-checkout: document interactions with submodules
sparse-checkout: list directories in cone mode
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/sparse-checkout.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/builtin/sparse-checkout.c b/builtin/sparse-checkout.c index 5d62f7a66d..b3bed891cb 100644 --- a/builtin/sparse-checkout.c +++ b/builtin/sparse-checkout.c @@ -53,6 +53,8 @@ static int sparse_checkout_list(int argc, const char **argv) memset(&pl, 0, sizeof(pl)); + pl.use_cone_patterns = core_sparse_checkout_cone; + sparse_filename = get_sparse_checkout_filename(); res = add_patterns_from_file_to_list(sparse_filename, "", 0, &pl, NULL); free(sparse_filename); @@ -62,6 +64,25 @@ static int sparse_checkout_list(int argc, const char **argv) return 0; } + if (pl.use_cone_patterns) { + int i; + struct pattern_entry *pe; + struct hashmap_iter iter; + struct string_list sl = STRING_LIST_INIT_DUP; + + hashmap_for_each_entry(&pl.recursive_hashmap, &iter, pe, ent) { + /* pe->pattern starts with "/", skip it */ + string_list_insert(&sl, pe->pattern + 1); + } + + string_list_sort(&sl); + + for (i = 0; i < sl.nr; i++) + printf("%s\n", sl.items[i].string); + + return 0; + } + write_patterns_to_file(stdout, &pl); clear_pattern_list(&pl); |