On 2020-03-23 15:11:50+0100, Johannes Schindelin <Johannes.Schindelin@xxxxxx> wrote: > Hi, > > On Sun, 22 Mar 2020, Đoàn Trần Công Danh wrote: > > > Since commit 6b7728db81, (t7063: work around FreeBSD's lazy mtime > > update feature, 2016-08-03), we started to use ls as a trick to update > > directory's mtime. > > > > However, `-ls` flag isn't required by POSIX's find(1), and > > busybox(1) doesn't implement it. > > > > >From the original conversation, it seems like find(1) with "-type d" > > could trigger enough "lstat(2)" to ask FreeBSD update mtime. > > This rationale makes me uneasy: why did Duy add _both_ `-type d` *and* > `-ls` if the former would have been enough? > > > Use only filter "-type d" for now. > > > > Signed-off-by: Đoàn Trần Công Danh <congdanhqx@xxxxxxxxx> > > --- > > t/t7063-status-untracked-cache.sh | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/t/t7063-status-untracked-cache.sh b/t/t7063-status-untracked-cache.sh > > index 190ae149cf..6791c6b95a 100755 > > --- a/t/t7063-status-untracked-cache.sh > > +++ b/t/t7063-status-untracked-cache.sh > > @@ -18,7 +18,7 @@ GIT_FORCE_UNTRACKED_CACHE=true > > export GIT_FORCE_UNTRACKED_CACHE > > > > sync_mtime () { > > - find . -type d -ls >/dev/null > > + find . -type d >/dev/null > > A more conservative patch would be the following: > > -- snip -- > commit 1680a64fae24b1073dbf1b844889a9953823b7a2 > Author: Johannes Schindelin <Johannes.Schindelin@xxxxxx> > Date: Wed Jul 19 22:13:16 2017 +0200 > > t7063: when running under BusyBox, avoid unsupported find option > > BusyBox' find implementation does not understand the -ls option, so > let's not use it when we're running inside BusyBox. Yes, this patch is a conservative patch. In v1, I went with "-exec ls -dils {} +". And, Jeff worries about a lot of flags passed to ls may run into compatibility issue. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@xxxxxx> > > diff --git a/t/t7063-status-untracked-cache.sh > b/t/t7063-status-untracked-cache.sh > index 190ae149cf3c..ab7e8b5fea01 100755 > --- a/t/t7063-status-untracked-cache.sh > +++ b/t/t7063-status-untracked-cache.sh > @@ -18,7 +18,12 @@ GIT_FORCE_UNTRACKED_CACHE=true > export GIT_FORCE_UNTRACKED_CACHE > > sync_mtime () { > - find . -type d -ls >/dev/null > + if test_have_prereq BUSYBOX > + then > + find . -type d -print0 | xargs -0r ls -ld >/dev/null Can we just change back to what Duy proposed time ago: find . -type d -exec ls -ld {} \; > + else > + find . -type d -ls >/dev/null > + fi > } > > avoid_racy() { > -- snap -- > > I have this in Git for Windows' fork, although I have to admit that there > is no CI set up to verify that this is all working as I expect it to. I'd find some time (later) to setup a Travis build with Alpine and VoidLinux, mainly for musl check. -- Danh