Hi Jeff, On Fri, 18 Sep 2020 at 13:19, Jeff King <peff@xxxxxxxx> wrote: > On Fri, Sep 18, 2020 at 12:34:48PM -0400, Thomas Guyot-Sionnest wrote: > But we do have to account for this in the test suite, which must be able > to run under a vanilla POSIX shell. So you'd probably want to set up a > prerequisite that lets us skip these tests on other shells, like: Indeed, the bash test library that was suggested earlier may be better as it exec() bash rather than skipping tests. Testing as a prereq works, another approach which may be harder to swallow but allow testing when default shell is /bin/sh is to run each git command through bash - could be coupled with a dep if bash isn't installed at all. > Though it is a little sad that people running the suite with a vanilla > /bin/sh like dash wouldn't ever run the tests. I wonder if there's a > more portable way to formulate it. Debian defaults to dash, a minimalistic and afaik POSIX-compliant shell. > Getting back to the overall feature, this is definitely something that > has come up before. The last I know of is: > > https://lore.kernel.org/git/20181220002610.43832-1-sandals@xxxxxxxxxxxxxxxxxxxx/ > > which everybody seemed to like the direction of; I suspect the original > author (cc'd) just never got around to it again. Compared to this > approach, it uses a command-line option to avoid dereferencing symlinks. > That puts an extra burden on the caller to pass the option, but it's way > less magical; you could drop all of the "does this look like a symlink > to a pipe" heuristics. It would also be much easier to test. ;) Thanks for the info. Another consideration is how other commands - diff, vim, sed, curl, etc can take input the same way, so being able to swap-in git is a plus imho,and one less switch to learn (or even learn about, I never looked for one for this issue). Regards, Thomas