Skip to content

Commit

Permalink
Remove ignored files by default when they are in the way
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
newren authored and gitster committed Sep 27, 2021
1 parent c42e0b6 commit 1b5f373
Show file tree
Hide file tree
Showing 9 changed files with 8 additions and 16 deletions.
3 changes: 1 addition & 2 deletions builtin/am.c
Original file line number Diff line number Diff line change
Expand Up @@ -1920,8 +1920,7 @@ static int fast_forward_to(struct tree *head, struct tree *remote, int reset)
opts.merge = 1;
opts.reset = reset;
if (!reset)
/* FIXME: Default should be to remove ignored files */
opts.preserve_ignored = 1;
opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
opts.fn = twoway_merge;
init_tree_desc(&t[0], head->buffer, head->size);
init_tree_desc(&t[1], remote->buffer, remote->size);
Expand Down
3 changes: 1 addition & 2 deletions builtin/clone.c
Original file line number Diff line number Diff line change
Expand Up @@ -803,8 +803,7 @@ static int checkout(int submodule_progress)
opts.update = 1;
opts.merge = 1;
opts.clone = 1;
/* FIXME: Default should be to remove ignored files */
opts.preserve_ignored = 1;
opts.preserve_ignored = 0;
opts.fn = oneway_merge;
opts.verbose_update = (option_verbosity >= 0);
opts.src_index = &the_index;
Expand Down
3 changes: 1 addition & 2 deletions builtin/merge.c
Original file line number Diff line number Diff line change
Expand Up @@ -681,8 +681,7 @@ static int read_tree_trivial(struct object_id *common, struct object_id *head,
opts.verbose_update = 1;
opts.trivial_merges_only = 1;
opts.merge = 1;
/* FIXME: Default should be to remove ignored files */
opts.preserve_ignored = 1;
opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
trees[nr_trees] = parse_tree_indirect(common);
if (!trees[nr_trees++])
return -1;
Expand Down
3 changes: 1 addition & 2 deletions builtin/reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -67,8 +67,7 @@ static int reset_index(const char *ref, const struct object_id *oid, int reset_t
case KEEP:
case MERGE:
opts.update = 1;
/* FIXME: Default should be to remove ignored files */
opts.preserve_ignored = 1;
opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
break;
case HARD:
opts.update = 1;
Expand Down
3 changes: 1 addition & 2 deletions builtin/stash.c
Original file line number Diff line number Diff line change
Expand Up @@ -259,8 +259,7 @@ static int reset_tree(struct object_id *i_tree, int update, int reset)
opts.reset = reset;
opts.update = update;
if (update && !reset)
/* FIXME: Default should be to remove ignored files */
opts.preserve_ignored = 1;
opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
opts.fn = oneway_merge;

if (unpack_trees(nr_trees, t, &opts))
Expand Down
2 changes: 1 addition & 1 deletion merge-ort.c
Original file line number Diff line number Diff line change
Expand Up @@ -4045,7 +4045,7 @@ static int checkout(struct merge_options *opt,
unpack_opts.quiet = 0; /* FIXME: sequencer might want quiet? */
unpack_opts.verbose_update = (opt->verbosity > 2);
unpack_opts.fn = twoway_merge;
unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore*/
unpack_opts.preserve_ignored = 0; /* FIXME: !opts->overwrite_ignore */
parse_tree(prev);
init_tree_desc(&trees[0], prev->buffer, prev->size);
parse_tree(next);
Expand Down
3 changes: 1 addition & 2 deletions reset.c
Original file line number Diff line number Diff line change
Expand Up @@ -56,8 +56,7 @@ int reset_head(struct repository *r, struct object_id *oid, const char *action,
unpack_tree_opts.fn = reset_hard ? oneway_merge : twoway_merge;
unpack_tree_opts.update = 1;
unpack_tree_opts.merge = 1;
/* FIXME: Default should be to remove ignored files */
unpack_tree_opts.preserve_ignored = 1;
unpack_tree_opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
init_checkout_metadata(&unpack_tree_opts.meta, switch_to_branch, oid, NULL);
if (!detach_head)
unpack_tree_opts.reset = 1;
Expand Down
3 changes: 1 addition & 2 deletions sequencer.c
Original file line number Diff line number Diff line change
Expand Up @@ -3690,8 +3690,7 @@ static int do_reset(struct repository *r,
unpack_tree_opts.fn = oneway_merge;
unpack_tree_opts.merge = 1;
unpack_tree_opts.update = 1;
/* FIXME: Default should be to remove ignored files */
unpack_tree_opts.preserve_ignored = 1;
unpack_tree_opts.preserve_ignored = 0; /* FIXME: !overwrite_ignore */
init_checkout_metadata(&unpack_tree_opts.meta, name, &oid, NULL);

if (repo_read_index_unmerged(r)) {
Expand Down
1 change: 0 additions & 1 deletion t/t7112-reset-submodule.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ test_description='reset can handle submodules'
. "$TEST_DIRECTORY"/lib-submodule-update.sh

KNOWN_FAILURE_DIRECTORY_SUBMODULE_CONFLICTS=1
KNOWN_FAILURE_SUBMODULE_OVERWRITE_IGNORED_UNTRACKED=1

test_submodule_switch_recursing_with_args "reset --keep"

Expand Down

0 comments on commit 1b5f373

Please sign in to comment.