Re: [PATCH v2 6/8] t7063: drop non-POSIX argument "-ls" from find(1)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Mar 23, 2020, 14:11 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2003231509150.46@tvgsbejvaqbjf.bet>
- In-Reply-To
- <59e3f73784b2a3bd9ccec87412e6178411c3708e.1584838148.git.congdanhqx@gmail.com>
Hi,
On Sun, 22 Mar 2020, Đoàn Trần Công Danh wrote:
Show 9 quoted lines
> 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?
Show 17 quoted lines
> Use only filter "-type d" for now.
>
> Signed-off-by: Đoàn Trần Công Danh <congdanhqx@gmail.com>
> ---
> 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/nullA more conservative patch would be the following:
-- snip -- commit 1680a64fae24b1073dbf1b844889a9953823b7a2 Author: Johannes Schindelin <Johannes.Schindelin@gmx.de> 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.Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
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 + 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. Ciao, Dscho > } > > avoid_racy() { > -- > 2.26.0.rc2.310.g2932bb562d > > >