]> git.ipfire.org Git - thirdparty/git.git/commit - dir.c
untracked cache: guard and disable on system changes
authorNguyễn Thái Ngọc Duy <pclouds@gmail.com>
Sun, 8 Mar 2015 10:12:46 +0000 (17:12 +0700)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Mar 2015 20:45:18 +0000 (13:45 -0700)
commit1e8fef609e78110e276df633c5ba1fb1f1589fa5
treec7ccbe9baf7e7b557fbfe77f406198cc5ce20939
parent7b6aff0655c965959a59cc7fa3ed51c2a1fbcd44
untracked cache: guard and disable on system changes

If the user enables untracked cache, then

 - move worktree to an unsupported filesystem
 - or simply upgrade OS
 - or move the whole (portable) disk from one machine to another
 - or access a shared fs from another machine

there's no guarantee that untracked cache can still function properly.
Record the worktree location and OS footprint in the cache. If it
changes, err on the safe side and disable the cache. The user can
'update-index --untracked-cache' again to make sure all conditions are
met.

This adds a new requirement that setup_git_directory* must be called
before read_cache() because we need worktree location by then, or the
cache is dropped.

This change does not cover all bases, you can fool it if you try
hard. The point is to stop accidents.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Helped-by: brian m. carlson <sandals@crustytoothpaste.net>
Helped-by: Torsten Bögershausen <tboegi@web.de>
Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/technical/index-format.txt
builtin/update-index.c
dir.c
dir.h
git-compat-util.h
test-dump-untracked-cache.c