untracked cache: mark index dirty if untracked cache is updated

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2015-03-08 17:12:39 +07:00 коммит произвёл Junio C Hamano
Родитель c9ccb5d327
Коммит 1bbb3dba3f
3 изменённых файлов: 11 добавлений и 1 удалений

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

@ -289,6 +289,7 @@ static inline unsigned int canon_mode(unsigned int mode)
#define RESOLVE_UNDO_CHANGED (1 << 4) #define RESOLVE_UNDO_CHANGED (1 << 4)
#define CACHE_TREE_CHANGED (1 << 5) #define CACHE_TREE_CHANGED (1 << 5)
#define SPLIT_INDEX_ORDERED (1 << 6) #define SPLIT_INDEX_ORDERED (1 << 6)
#define UNTRACKED_CHANGED (1 << 7)
struct split_index; struct split_index;
struct untracked_cache; struct untracked_cache;

9
dir.c
Просмотреть файл

@ -1934,6 +1934,15 @@ int read_directory(struct dir_struct *dir, const char *path, int len, const stru
dir->untracked->gitignore_invalidated, dir->untracked->gitignore_invalidated,
dir->untracked->dir_invalidated, dir->untracked->dir_invalidated,
dir->untracked->dir_opened); dir->untracked->dir_opened);
if (dir->untracked == the_index.untracked &&
(dir->untracked->dir_opened ||
dir->untracked->gitignore_invalidated ||
dir->untracked->dir_invalidated))
the_index.cache_changed |= UNTRACKED_CHANGED;
if (dir->untracked != the_index.untracked) {
free(dir->untracked);
dir->untracked = NULL;
}
} }
return dir->nr; return dir->nr;
} }

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

@ -44,7 +44,7 @@ static struct cache_entry *refresh_cache_entry(struct cache_entry *ce,
/* changes that can be kept in $GIT_DIR/index (basically all extensions) */ /* changes that can be kept in $GIT_DIR/index (basically all extensions) */
#define EXTMASK (RESOLVE_UNDO_CHANGED | CACHE_TREE_CHANGED | \ #define EXTMASK (RESOLVE_UNDO_CHANGED | CACHE_TREE_CHANGED | \
CE_ENTRY_ADDED | CE_ENTRY_REMOVED | CE_ENTRY_CHANGED | \ CE_ENTRY_ADDED | CE_ENTRY_REMOVED | CE_ENTRY_CHANGED | \
SPLIT_INDEX_ORDERED) SPLIT_INDEX_ORDERED | UNTRACKED_CHANGED)
struct index_state the_index; struct index_state the_index;
static const char *alternate_index_output; static const char *alternate_index_output;