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 коммит произвёл Victoria Dye
Родитель 24877a61d8
Коммит bb8b48478a
1 изменённых файлов: 3 добавлений и 1 удалений

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

@ -5,6 +5,7 @@
*/
#include "cache.h"
#include "merge-recursive.h"
#include "virtualfilesystem.h"
#include "advice.h"
#include "alloc.h"
@ -872,7 +873,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,