On Thu, Jan 10, 2019 at 11:28:34AM +0800, Jiang Xin wrote: > SZEDER Gábor <szeder.dev@xxxxxxxxx> 于2019年1月9日周三 下午8:56写道: > > > + sed -e "s#^.*/pack-\(.*\)\.\(idx\|pack\)#\1#g" | \ > > > > This sed command doesn't seem to work on macOS (on Travis CI), and > > causes the test to fail with: > > > > It works if rewrite as follows: > > git pack-redundant --all >out && > sed -E -e "s#.*/pack-(.*)\.(idx|pack)#\1#" out | \ > > Without `-E`, MasOS has to write two seperate sed commands, such as: > > git pack-redundant --all >out && > sed -e "s#.*/pack-\(.*\)\.idx#\1#" out | \ > sed -e "s#.*/pack-\(.*\)\.pack#\1#" > > Option '-E' is an alias for -r in GNU sed 4.2 (added in 4.2, not documented > unti 4.3), released on May 11 2009. I prefer the `-E` version. Is 'sed -E' portable enough, e.g. to the various BSDs, Solaris, and whatnot? I don't know, but POSIX doesn't mention it, there is not a single instance of it in our current codebase, and it appears that we've never used it before, either. OTOH, 't/check-non-portable-shell.pl' doesn't catch it as non-portable construct...