]> Kevux Git Server - rit/commitdiff
Remove ignored files by default when they are in the way
authorElijah Newren <newren@gmail.com>
Mon, 27 Sep 2021 16:33:43 +0000 (16:33 +0000)
committerJunio C Hamano <gitster@pobox.com>
Mon, 27 Sep 2021 20:38:37 +0000 (13:38 -0700)
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>
builtin/am.c
builtin/clone.c
builtin/merge.c
builtin/reset.c
builtin/stash.c
merge-ort.c
reset.c
sequencer.c
t/t7112-reset-submodule.sh

index 567ecd8..93beb66 100644 (file)
@@ -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);
index 2ff9e9c..26599f4 100644 (file)
@@ -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;
index 89c99cf..9202587 100644 (file)
@@ -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;
index 7f38656..5df01cc 100644 (file)
@@ -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;
index 88287b8..d60cdaf 100644 (file)
@@ -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))
index 610c391..48fbd52 100644 (file)
@@ -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);
diff --git a/reset.c b/reset.c
index 41b3e2d..f40a8ec 100644 (file)
--- a/reset.c
+++ b/reset.c
@@ -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;
index 695750e..9751e9a 100644 (file)
@@ -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)) {
index 19830d9..a3e2413 100755 (executable)
@@ -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"