73
74
memset(&pl, 0, sizeof(pl));
75
76
- pl.use_cone_patterns = core_sparse_checkout_cone;
76
+ pl.use_cone_patterns = cfg->core_sparse_checkout_cone;
77
78
sparse_filename = get_sparse_checkout_filename();
79
res = add_patterns_from_file_to_list(sparse_filename, "", 0, &pl, NULL, 0);
334
FILE *fp;
335
struct lock_file lk = LOCK_INIT;
336
int result;
337
+ struct repo_config_values *cfg = repo_config_values(the_repository);
338
339
sparse_filename = get_sparse_checkout_filename();
340
354
if (!fp)
355
die_errno(_("unable to fdopen %s"), get_lock_file_path(&lk));
356
356
- if (core_sparse_checkout_cone)
357
+ if (cfg->core_sparse_checkout_cone)
358
write_cone_to_file(fp, pl);
359
else
360
write_patterns_to_file(fp, pl);
403
404
/* If not specified, use previous definition of cone mode */
405
if (*cone_mode == -1 && cfg->apply_sparse_checkout)
405
- *cone_mode = core_sparse_checkout_cone;
406
+ *cone_mode = cfg->core_sparse_checkout_cone;
407
408
/* Set cone/non-cone mode appropriately */
409
cfg->apply_sparse_checkout = 1;
410
if (*cone_mode == 1 || *cone_mode == -1) {
410
- core_sparse_checkout_cone = 1;
411
+ cfg->core_sparse_checkout_cone = 1;
412
return MODE_CONE_PATTERNS;
413
}
413
- core_sparse_checkout_cone = 0;
414
+ cfg->core_sparse_checkout_cone = 0;
415
return MODE_ALL_PATTERNS;
416
}
417
578
FILE *file)
579
{
580
int i;
580
- if (core_sparse_checkout_cone) {
581
+ struct repo_config_values *cfg = repo_config_values(the_repository);
582
+
583
+ if (cfg->core_sparse_checkout_cone) {
584
struct strbuf line = STRBUF_INIT;
585
586
hashmap_init(&pl->recursive_hashmap, pl_hashmap_cmp, NULL, 0);
639
struct pattern_entry *pe;
640
struct hashmap_iter iter;
641
struct pattern_list existing;
642
+ struct repo_config_values *cfg = repo_config_values(the_repository);
643
char *sparse_filename = get_sparse_checkout_filename();
644
645
add_patterns_from_input(pl, argc, argv,
646
use_stdin ? stdin : NULL);
647
648
memset(&existing, 0, sizeof(existing));
645
- existing.use_cone_patterns = core_sparse_checkout_cone;
649
+ existing.use_cone_patterns = cfg->core_sparse_checkout_cone;
650
651
if (add_patterns_from_file_to_list(sparse_filename, "", 0,
652
&existing, NULL, 0))
694
695
switch (m) {
696
case ADD:
693
- if (core_sparse_checkout_cone)
697
+ if (cfg->core_sparse_checkout_cone)
698
add_patterns_cone_mode(args->nr, args->v, pl, use_stdin);
699
else
700
add_patterns_literal(args->nr, args->v, pl, use_stdin);
727
const char *prefix, int skip_checks)
728
{
729
int i;
730
+ struct repo_config_values *cfg = repo_config_values(the_repository);
731
732
if (!args->nr)
733
return;
734
730
- if (prefix && *prefix && core_sparse_checkout_cone) {
735
+ if (prefix && *prefix && cfg->core_sparse_checkout_cone) {
736
/*
737
* The args are not pathspecs, so unfortunately we
738
* cannot imitate how cmd_add() uses parse_pathspec().
749
if (skip_checks)
750
return;
751
747
- if (prefix && *prefix && !core_sparse_checkout_cone)
752
+ if (prefix && *prefix && !cfg->core_sparse_checkout_cone)
753
die(_("please run from the toplevel directory in non-cone mode"));
754
750
- if (core_sparse_checkout_cone) {
755
+ if (cfg->core_sparse_checkout_cone) {
756
for (i = 0; i < args->nr; i++) {
757
if (args->v[i][0] == '/')
758
die(_("specify directories rather than patterns (no leading slash)"));
774
if (S_ISSPARSEDIR(ce->ce_mode))
775
continue;
776
772
- if (core_sparse_checkout_cone)
777
+ if (cfg->core_sparse_checkout_cone)
778
die(_("'%s' is not a directory; to treat it as a directory anyway, rerun with --skip-checks"), args->v[i]);
779
else
780
warning(_("pass a leading slash before paths such as '%s' if you want a single file (see NON-CONE PROBLEMS in the git-sparse-checkout manual)."), args->v[i]);
841
static int sparse_checkout_set(int argc, const char **argv, const char *prefix,
842
struct repository *repo)
843
{
844
+ struct repo_config_values *cfg = repo_config_values(the_repository);
845
int default_patterns_nr = 2;
846
const char *default_patterns[] = {"/*", "!/*/", NULL};
847
879
* non-cone mode, if nothing is specified, manually select just the
880
* top-level directory (much as 'init' would do).
881
*/
876
- if (!core_sparse_checkout_cone && !set_opts.use_stdin && argc == 0) {
882
+ if (!cfg->core_sparse_checkout_cone && !set_opts.use_stdin && argc == 0) {
883
for (int i = 0; i < default_patterns_nr; i++)
884
strvec_push(&patterns, default_patterns[i]);
885
} else {
983
setup_work_tree();
984
if (!cfg->apply_sparse_checkout)
985
die(_("must be in a sparse-checkout to clean directories"));
980
- if (!core_sparse_checkout_cone)
986
+ if (!cfg->core_sparse_checkout_cone)
987
die(_("must be in a cone-mode sparse-checkout to clean directories"));
988
989
argc = parse_options(argc, argv, prefix,
1147
FILE *fp;
1148
int ret;
1149
struct pattern_list pl = {0};
1150
+ struct repo_config_values *cfg = repo_config_values(the_repository);
1151
char *sparse_filename;
1152
check_rules_opts.cone_mode = -1;
1153
1159
check_rules_opts.cone_mode = 1;
1160
1161
update_cone_mode(&check_rules_opts.cone_mode);
1155
- pl.use_cone_patterns = core_sparse_checkout_cone;
1162
+ pl.use_cone_patterns = cfg->core_sparse_checkout_cone;
1163
if (check_rules_opts.rules_file) {
1164
fp = xfopen(check_rules_opts.rules_file, "r");
1165
add_patterns_from_input(&pl, argc, argv, fp);