[PATCH] p5303: avoid sed GNU-ism
- From
Jeff King <peff@peff.net>
- Date
- Jan 29, 2021, 20:04 UTC
- Message-ID
- <YBRqOI84MkU+HNzt@coredump.intra.peff.net>
- In-Reply-To
- <YBRi4v/AeDD/Zc9X@coredump.intra.peff.net>
On Fri, Jan 29, 2021 at 02:32:50PM -0500, Jeff King wrote:
Show 14 quoted lines
> > this construct: > > > > ... | > > sed -n '1~5p' | > > head -n "$1" | > > ... > > > > which is a GNUism. Peff often says that very small population > > actually run our perf suite, and this seems to corroborate the > > conjecture. > > Oops. Looks like I was the one who introduced that. Nobody seems to have > complained, so I'm somewhat tempted to leave it. But it would not be too > hard to replace with perl, I think.
Maybe worth doing this?
-- >8 -- Subject: [PATCH] p5303: avoid sed GNU-ism
Using "1~5" isn't portable. Nobody seems to have noticed, since perhaps people don't tend to run the perf suite on more exotic platforms. Still, it's better to set a good example.
We can use:
perl -ne 'print if $. % 5 == 1'
instead. But we can further observe that perl does a good job of the other parts of this pipeline, and fold the whole thing together.
Signed-off-by: Jeff King <peff@peff.net> --- t/perf/p5303-many-packs.sh | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/t/perf/p5303-many-packs.sh b/t/perf/p5303-many-packs.sh index f4c2ab0584..ce0c42cc9f 100755 --- a/t/perf/p5303-many-packs.sh +++ b/t/perf/p5303-many-packs.sh @@ -21,10 +21,14 @@ repack_into_n () { mkdir staging && git rev-list --first-parent HEAD | - sed -n '1~5p' | - head -n "$1" | - perl -e 'print reverse <>' \ - >pushes + perl -e ' + my $n = shift; + while (<>) { + last unless @commits < $n; + push @commits, $_ if $. % 5 == 1; + } + print reverse @commits; + ' "$1" >pushes # create base packfile head -n 1 pushes |
-- 2.30.0.759.g69d54d14a7