From: Junio C Hamano Date: Wed, 10 Aug 2016 18:55:30 +0000 (-0700) Subject: Merge branch 'nd/fbsd-lazy-mtime' into maint X-Git-Tag: v2.9.3~10 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/f7fb6e21b8f392f97fd35da41a31078fe6641b2a?hp=1dc4aa67d615afa1f3fc0b19a873a68ba6ab3da8 Merge branch 'nd/fbsd-lazy-mtime' into maint FreeBSD can lie when asked mtime of a directory, which made the untracked cache code to fall back to a slow-path, which in turn caused tests in t7063 to fail because it wanted to verify the behaviour of the fast-path. * nd/fbsd-lazy-mtime: t7063: work around FreeBSD's lazy mtime update feature --- diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh index a828a5f3b4..4e1e290a9f 100755 --- a/t/t7063-status-untracked-cache.sh +++ b/t/t7063-status-untracked-cache.sh @@ -4,6 +4,20 @@ test_description='test untracked cache' . ./test-lib.sh +# On some filesystems (e.g. FreeBSD's ext2 and ufs) directory mtime +# is updated lazily after contents in the directory changes, which +# forces the untracked cache code to take the slow path. A test +# that wants to make sure that the fast path works correctly should +# call this helper to make mtime of the containing directory in sync +# with the reality before checking the fast path behaviour. +# +# See <20160803174522.5571-1-pclouds@gmail.com> if you want to know +# more. + +sync_mtime () { + find . -type d -ls >/dev/null +} + avoid_racy() { sleep 1 } @@ -416,7 +430,8 @@ test_expect_success 'create/modify files, some of which are gitignored' ' echo four >done/four && # four is gitignored at a higher level echo five >done/five && # five is not gitignored echo test >base && #we need to ensure that the root dir is touched - rm base + rm base && + sync_mtime ' test_expect_success 'test sparse status with untracked cache' '