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?ds=inline;hp=-c 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 --- f7fb6e21b8f392f97fd35da41a31078fe6641b2a diff --combined t/t7063-status-untracked-cache.sh index a828a5f3b4,e0a8228f19..4e1e290a9f --- a/t/t7063-status-untracked-cache.sh +++ b/t/t7063-status-untracked-cache.sh @@@ -4,6 -4,20 +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 } @@@ -53,7 -67,7 +67,7 @@@ A tw EOF cat >../dump.expect <../actual && cat >../expect <../actual && cat >../expect <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' '