]> git.ipfire.org Git - thirdparty/git.git/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 567ecd882bf2375436a15e2c2efbbf935527a88b..93beb661977d1eb32013f4fca0e33e578aa5f7d5 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 2ff9e9ca74b1b14df5bbc3596cf6e80857ac87cd..26599f40f2c499cc35141389917cef2cc0ef7b8e 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 89c99cf28cdb73abda13ea61aa50fbe1f6e41d66..9202587728e77b20e05312298775bc717aa4329c 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 7f38656f018efb37795148d1406c0c55315fb331..5df01cc42e000aa2e52392d92bf09c1f9ac4e8db 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 88287b890d5cd3ddd5d1d83bbe29ba1436238db5..d60cdaf32f5c65e8285501a34f59d976fd464890 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 610c3913b53e65841ce667097eb9cd3897c313a6..48fbd52a77c09b9897ba62b7df0b12adf68f547a 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 41b3e2d88deb2507dec776ccb6d9aef2f233171c..f40a8ecf663542fff02b77328d9f261626fbf8b5 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 695750ef0be2c9231279cee4d150f0a8db18df46..9751e9aa8d9b34691247460863e0306e0faa75ac 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 19830d90365661505a047e2376026a1ada023bb0..a3e2413bc339533ef09a9092b2918b7265645e68 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"