On 2020-03-19 15:16:09-0700, Junio C Hamano <gitster@xxxxxxxxx> wrote: > Jeff King <peff@xxxxxxxx> writes: > > > On Thu, Mar 19, 2020 at 09:00:06PM +0700, Đ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. > >> > >> Use an equivalence `-exec ls -dils {} +` instead. > > > > Makes sense. I wonder if we need all of "-dils", but it's not clear to >From the original commit message, I think whichever flags that call stat(2) would be do it. It's `-d` (to check is_directory), and `-i` for inode number. This make make wonder, will it be enough to just use: find . -type d >/dev/null > > me which syscalls actually trigger the FreeBSD lazy-update behavior. I > > guess probably it's stat()ing the directory, so "ls -ld" would be > > sufficient (and that's implied by the examples in 6b7728db81). > > > > But I doubt the extra options would create a portability problem, so I > > think it's fine either way. > > Thanks. I too wondered if -dils is really needed (POSIX of course > have all of them, but we have to deal with non-POSIX systems, too, > and I am not sure how things like "-i" works there). I think "-i" asks for stat(2) to get inode number, which will ask FreeBSD sync mtime. > > s/equivalence/equivalent/; perhaps? Will do, I've never correctly used -ence and -ent pairs of words. -- Danh