Re: [PATCH] sparse-checkout: improve OS ls compatibility
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Dec 19, 2019, 02:22 UTC
- Message-ID
- <2653429f-46ac-c67d-cb08-8cc8695d77ae@gmail.com>
- In-Reply-To
- <CAPyFy2BROa9iMWBWf1hioYDaoEXPvyUNGHOZaZiD0TzVVhEtoA@mail.gmail.com>
On 12/18/2019 9:18 PM, Ed Maste wrote:
Show 32 quoted lines
> On Wed, 18 Dec 2019 at 21:07, Derrick Stolee <stolee@gmail.com> wrote: >> >> On 12/18/2019 8:58 PM, Ed Maste wrote: >> >> Thanks for the report! >> >> It was a little unclear from the get-go what exactly the issue is. >> >>> On FreeBSD, when executed by root ls enables the '-A' option: >>> >>> -A Include directory entries whose names begin with a dot (`.') >>> except for . and ... Automatically set for the super-user unless >>> -I is specified. >> >> It appears that the "ls" commands in the sparse-checkout tests are >> reporting the ".git" directory when executed on FreeBSD as root. Is this >> only as root? > > Yes, this is only as root - it seems Cirrus-CI invokes the build and > test scripts as root, which is why I had trouble reproducing it > locally. > >>> Pipe ls's output to grep -v .git to remove the undesired entry. Also >>> pass the -1 option to ensure one entry per line. >> >> What if we instead ran "ls -a" and added .git to our expected output >> (when appropriate)? Would that be simpler (and reduce the process >> count that this solution introduces). > > I originally tried that approach and thought it was a bit cumbersome, > but avoiding additional process invocations is a good argument. I'll > send a v2 with that change instead.
I guess you are right that having "." and ".." appear is a bit silly. Perhaps your approach is cleaner, and the extra processes are not too much of a cost.
Let's hold off on the v2 for a bit in case someone has a better idea.
Thanks, -Stolee