diff options
Diffstat (limited to 'merge-recursive.c')
-rw-r--r-- | merge-recursive.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index 840599f..2b791d1 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -408,8 +408,13 @@ static int unpack_trees_start(struct merge_options *opt, memset(&opt->priv->unpack_opts, 0, sizeof(opt->priv->unpack_opts)); if (opt->priv->call_depth) opt->priv->unpack_opts.index_only = 1; - else + else { opt->priv->unpack_opts.update = 1; + /* FIXME: should only do this if !overwrite_ignore */ + CALLOC_ARRAY(opt->priv->unpack_opts.dir, 1); + opt->priv->unpack_opts.dir->flags |= DIR_SHOW_IGNORED; + setup_standard_excludes(opt->priv->unpack_opts.dir); + } opt->priv->unpack_opts.merge = 1; opt->priv->unpack_opts.head_idx = 2; opt->priv->unpack_opts.fn = threeway_merge; @@ -423,6 +428,10 @@ static int unpack_trees_start(struct merge_options *opt, init_tree_desc_from_tree(t+2, merge); rc = unpack_trees(3, t, &opt->priv->unpack_opts); + if (opt->priv->unpack_opts.dir) { + dir_clear(opt->priv->unpack_opts.dir); + FREE_AND_NULL(opt->priv->unpack_opts.dir); + } cache_tree_free(&opt->repo->index->cache_tree); /* |