diff options
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); |