merge-recursive: teach was_dirty() about the virtualfilesystem

The idea of the virtual file system really is to tell Git to avoid
accessing certain paths. This fixes the case where a given path is not
yet included in the virtual file system and we are about to write a
conflicted version of it.
This commit is contained in:
Johannes Schindelin 2019-05-21 23:20:16 +02:00 коммит произвёл Derrick Stolee
Родитель 3df82fa345
Коммит f4d43a1ff1
1 изменённых файлов: 3 добавлений и 1 удалений

Просмотреть файл

@ -29,6 +29,7 @@
#include "tree-walk.h"
#include "unpack-trees.h"
#include "xdiff-interface.h"
#include "virtualfilesystem.h"
struct merge_options_internal {
int call_depth;
@ -858,7 +859,8 @@ static int was_dirty(struct merge_options *opt, const char *path)
{
struct cache_entry *ce;
if (opt->priv->call_depth || !was_tracked(opt, path))
if (opt->priv->call_depth || !was_tracked(opt, path) ||
is_excluded_from_virtualfilesystem(path, strlen(path), DT_REG) == 1)
return 0;
ce = index_file_exists(opt->priv->unpack_opts.src_index,