Remove ignored files by default when they are in the way
Change several commands to remove ignored files by default when they are in the way. Since some commands (checkout, merge) take a --no-overwrite-ignore option to allow the user to configure this, and it may make sense to add that option to more commands (and in the case of merge, actually plumb that configuration option through to more of the backends than just the fast-forwarding special case), add little comments about where such flags would be used. Incidentally, this fixes a test failure in t7112. Signed-off-by: Elijah Newren <newren@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Elijah Newren committed
Sep 27, 2021 at 16:33 UTC
1b5f37334a2603c7134da7accba76276d8d31cf6
9 files changed
+8
-16
builtin/am.c
+1
-2
@@ -1920,8 +1920,7 @@ static int fast_forward_to(struct tree *head, struct tree *remote, int reset)
1920
opts.merge = 1;
1921
opts.reset = reset;
1922
if (!reset)
1923
- /* FIXME: Default should be to remove ignored files */
1924
- opts.preserve_ignored = 1;
1923
+ opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
1924
opts.fn = twoway_merge;
1925
init_tree_desc(&t[0], head->buffer, head->size);
1926
init_tree_desc(&t[1], remote->buffer, remote->size);
builtin/clone.c
+1
-2
@@ -803,8 +803,7 @@ static int checkout(int submodule_progress)
803
opts.update = 1;
804
opts.merge = 1;
805
opts.clone = 1;
806
- /* FIXME: Default should be to remove ignored files */
807
- opts.preserve_ignored = 1;
806
+ opts.preserve_ignored = 0;
807
opts.fn = oneway_merge;
808
opts.verbose_update = (option_verbosity >= 0);
809
opts.src_index = &the_index;
builtin/merge.c
+1
-2
@@ -681,8 +681,7 @@ static int read_tree_trivial(struct object_id *common, struct object_id *head,
681
opts.verbose_update = 1;
682
opts.trivial_merges_only = 1;
683
opts.merge = 1;
684
- /* FIXME: Default should be to remove ignored files */
685
- opts.preserve_ignored = 1;
684
+ opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
685
trees[nr_trees] = parse_tree_indirect(common);
686
if (!trees[nr_trees++])
687
return -1;
builtin/reset.c
+1
-2
@@ -67,8 +67,7 @@ static int reset_index(const char *ref, const struct object_id *oid, int reset_t
67
case KEEP:
68
case MERGE:
69
opts.update = 1;
70
- /* FIXME: Default should be to remove ignored files */
71
- opts.preserve_ignored = 1;
70
+ opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
71
break;
72
case HARD:
73
opts.update = 1;
builtin/stash.c
+1
-2
@@ -259,8 +259,7 @@ static int reset_tree(struct object_id *i_tree, int update, int reset)
259
opts.reset = reset;
260
opts.update = update;
261
if (update && !reset)
262
- /* FIXME: Default should be to remove ignored files */
263
- opts.preserve_ignored = 1;
262
+ opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
263
opts.fn = oneway_merge;
264
265
if (unpack_trees(nr_trees, t, &opts))
merge-ort.c
+1
-1
@@ -4045,7 +4045,7 @@ static int checkout(struct merge_options *opt,
4045
unpack_opts.quiet = 0; /* FIXME: sequencer might want quiet? */
4046
unpack_opts.verbose_update = (opt->verbosity > 2);
4047
unpack_opts.fn = twoway_merge;
4048
- unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore*/
4048
+ unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore */
4049
parse_tree(prev);
4050
init_tree_desc(&trees[0], prev->buffer, prev->size);
4051
parse_tree(next);
reset.c
+1
-2
@@ -56,8 +56,7 @@ int reset_head(struct repository *r, struct object_id *oid, const char *action,
56
unpack_tree_opts.fn = reset_hard ? oneway_merge : twoway_merge;
57
unpack_tree_opts.update = 1;
58
unpack_tree_opts.merge = 1;
59
- /* FIXME: Default should be to remove ignored files */
60
- unpack_tree_opts.preserve_ignored = 1;
59
+ unpack_tree_opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
60
init_checkout_metadata(&unpack_tree_opts.meta, switch_to_branch, oid, NULL);
61
if (!detach_head)
62
unpack_tree_opts.reset = 1;
sequencer.c
+1
-2
@@ -3690,8 +3690,7 @@ static int do_reset(struct repository *r,
3690
unpack_tree_opts.fn = oneway_merge;
3691
unpack_tree_opts.merge = 1;
3692
unpack_tree_opts.update = 1;
3693
- /* FIXME: Default should be to remove ignored files */
3694
- unpack_tree_opts.preserve_ignored = 1;
3693
+ unpack_tree_opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
3694
init_checkout_metadata(&unpack_tree_opts.meta, name, &oid, NULL);
3695
3696
if (repo_read_index_unmerged(r)) {
t/t7112-reset-submodule.sh
-1
@@ -6,7 +6,6 @@ test_description='reset can handle submodules'
6
. "$TEST_DIRECTORY"/lib-submodule-update.sh
7
8
KNOWN_FAILURE_DIRECTORY_SUBMODULE_CONFLICTS=1
9
-KNOWN_FAILURE_SUBMODULE_OVERWRITE_IGNORED_UNTRACKED=1
9
10
test_submodule_switch_recursing_with_args "reset --keep"
11