git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 00/22] avoid redundant pipelines

From
BBBeat Bolli <bb@drbeat.li>
Date
Mar 5, 2024, 21:24 UTC
Message-ID
<20240305212533.12947-1-dev+git@drbeat.li>

As follow-up to [1], here's a series that eliminates redundant pipelines, mostly under t/.

Spawning a process is notoriously slow on Windows, so this will improve test performance.

1/22 to 14/22 remove redundant uses of "cat" where the shell handles input redirection from a file or the command can take a file argument.

15/22 to 20/22 merge redundant uses of "grep" into the following "sed" or "awk" command. Both of these are capable of filtering themselves. I'm a bit on the fence about this part because readability suffers in some cases. It was a fun exercise, though :-)

21/22 merges multiple "sed" calls into one and replaces a whole "cat | grep | awk" construct with a single "awk" call and uses "sort -u" instead of "sort | uniq".

22/22 finally is a bit of an outlier in that it replaces a subshell with a shell compound command.

In the tests, I have completely arbitrarily separated the commits into thousands blocks to keep the commits and their reviews manageable.

All tests that I was able to run still pass. I don't have p4 or cvs installed.

[1] https://lore.kernel.org/git/20240216171046.927552-1-dev+git@drbeat.li/
Beat Bolli (22):
  doc: avoid redundant use of cat
  contrib/subtree/t: avoid redundant use of cat
  t/lib-cvs.sh: avoid redundant use of cat
  t/annotate-tests.sh: avoid redundant use of cat
  t/perf: avoid redundant use of cat
  t/t0*: avoid redundant uses of cat
  t/t1*: avoid redundant uses of cat
  t/t3*: avoid redundant uses of cat
  t/t4*: avoid redundant uses of cat
  t/t5*: avoid redundant uses of cat
  t/t6*: avoid redundant uses of cat
  t/t7*: avoid redundant use of cat
  t/t8*: avoid redundant use of cat
  t/t9*: avoid redundant uses of cat
  t/t1*: merge a "grep | sed" pipeline
  t/t3*: merge a "grep | awk" pipeline
  t/t4*: merge a "grep | sed" pipeline
  t/t5*: merge a "grep | sed" pipeline
  t/t8*: merge "grep | sed" pipelines
  t/t9*: merge "grep | sed" pipelines
  contrib/coverage-diff: avoid redundant pipelines
  git-quiltimport: avoid an unnecessary subshell
 Documentation/howto/update-hook-example.txt |  4 +--
 contrib/coverage-diff.sh                    |  9 ++----
 contrib/subtree/t/t7900-subtree.sh          |  2 +-
 git-quiltimport.sh                          |  2 +-
 t/annotate-tests.sh                         |  2 +-
 t/lib-cvs.sh                                |  4 +--
 t/perf/repos/inflate-repo.sh                |  2 +-
 t/t0002-gitfile.sh                          |  2 +-
 t/t0011-hashmap.sh                          |  2 +-
 t/t0028-working-tree-encoding.sh            |  4 +--
 t/t0204-gettext-reencode-sanity.sh          |  2 +-
 t/t1007-hash-object.sh                      |  6 ++--
 t/t1091-sparse-checkout-builtin.sh          |  2 +-
 t/t1509/prepare-chroot.sh                   |  2 +-
 t/t3200-branch.sh                           |  2 +-
 t/t3321-notes-stripspace.sh                 |  8 ++---
 t/t3920-crlf-messages.sh                    |  4 +--
 t/t4002-diff-basic.sh                       |  2 +-
 t/t4020-diff-external.sh                    |  2 +-
 t/t4150-am.sh                               |  2 +-
 t/t4205-log-pretty-formats.sh               |  2 +-
 t/t4301-merge-tree-write-tree.sh            |  8 ++---
 t/t5100-mailinfo.sh                         |  2 +-
 t/t5317-pack-objects-filter-objects.sh      |  2 +-
 t/t5401-update-hooks.sh                     |  2 +-
 t/t5534-push-signed.sh                      |  2 +-
 t/t6112-rev-list-filters-objects.sh         |  2 +-
 t/t6413-merge-crlf.sh                       |  4 +--
 t/t7704-repack-cruft.sh                     |  2 +-
 t/t8010-cat-file-filters.sh                 |  2 +-
 t/t8013-blame-ignore-revs.sh                | 28 ++++++++---------
 t/t9118-git-svn-funky-branch-names.sh       |  2 +-
 t/t9300-fast-import.sh                      | 10 +++---
 t/t9350-fast-export.sh                      |  4 +--
 t/t9400-git-cvsserver-server.sh             | 35 ++++++++++-----------
 t/t9802-git-p4-filetype.sh                  |  2 +-
 t/t9807-git-p4-submit.sh                    |  2 +-
 t/t9824-git-p4-git-lfs.sh                   |  4 +--
 38 files changed, 86 insertions(+), 94 deletions(-)
-- 
2.44.0
Next: Beat Bolli
Message 1 of 78 in “avoid redundant pipelines”
  1. 00/22 avoid redundant pipelinesBeat Bolli, Mar 5, 2024
  2. 01/22 doc: avoid redundant use of catBeat Bolli, Mar 5, 2024
  3. Junio C HamanoMar 5, 2024
  4. 02/22 contrib/subtree/t: avoid redundant use of catBeat Bolli, Mar 5, 2024
  5. Junio C HamanoMar 5, 2024
  6. 03/22 t/lib-cvs.sh: avoid redundant use of catBeat Bolli, Mar 5, 2024
  7. Junio C HamanoMar 5, 2024
  8. 04/22 t/annotate-tests.sh: avoid redundant use of catBeat Bolli, Mar 5, 2024
  9. Junio C HamanoMar 5, 2024
  10. Rubén JustoMar 6, 2024
  11. Junio C HamanoMar 6, 2024
  12. Rubén JustoMar 6, 2024
  13. 05/22 t/perf: avoid redundant use of catBeat Bolli, Mar 5, 2024
  14. Junio C HamanoMar 5, 2024
  15. 06/22 t/t0*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  16. 07/22 t/t1*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  17. 08/22 t/t3*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  18. 09/22 t/t4*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  19. Junio C HamanoMar 6, 2024
  20. Eric SunshineMar 6, 2024
  21. Beat BolliMar 6, 2024
  22. 10/22 t/t5*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  23. 11/22 t/t6*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  24. 12/22 t/t7*: avoid redundant use of catBeat Bolli, Mar 5, 2024
  25. 13/22 t/t8*: avoid redundant use of catBeat Bolli, Mar 5, 2024
  26. 14/22 t/t9*: avoid redundant uses of catBeat Bolli, Mar 5, 2024
  27. Rubén JustoMar 5, 2024
  28. Junio C HamanoMar 6, 2024
  29. Rubén JustoMar 6, 2024
  30. 15/22 t/t1*: merge a "grep | sed" pipelineBeat Bolli, Mar 5, 2024
  31. 16/22 t/t3*: merge a "grep | awk" pipelineBeat Bolli, Mar 5, 2024
  32. Junio C HamanoMar 6, 2024
  33. 17/22 t/t4*: merge a "grep | sed" pipelineBeat Bolli, Mar 5, 2024
  34. 18/22 t/t5*: merge a "grep | sed" pipelineBeat Bolli, Mar 5, 2024
  35. Junio C HamanoMar 6, 2024
  36. 19/22 t/t8*: merge "grep | sed" pipelinesBeat Bolli, Mar 5, 2024
  37. Junio C HamanoMar 6, 2024
  38. Todd ZullingerMar 6, 2024
  39. Junio C HamanoMar 6, 2024
  40. Beat BolliMar 6, 2024
  41. Junio C HamanoMar 6, 2024
  42. 20/22 t/t9*: merge "grep | sed" pipelinesBeat Bolli, Mar 5, 2024
  43. Junio C HamanoMar 6, 2024
  44. 21/22 contrib/coverage-diff: avoid redundant pipelinesBeat Bolli, Mar 5, 2024
  45. 22/22 git-quiltimport: avoid an unnecessary subshellBeat Bolli, Mar 5, 2024
  46. Rubén JustoMar 5, 2024
  47. Rubén JustoMar 5, 2024
  48. Junio C HamanoMar 5, 2024
  49. 00/22 avoid redundant pipelinesBeat Bolli, Mar 15, 2024
  50. 01/22 doc: avoid redundant use of catBeat Bolli, Mar 15, 2024
  51. 07/22 t/t1*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  52. 06/22 t/t0*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  53. 02/22 contrib/subtree/t: avoid redundant use of catBeat Bolli, Mar 15, 2024
  54. 08/22 t/t3*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  55. 03/22 t/lib-cvs.sh: avoid redundant use of catBeat Bolli, Mar 15, 2024
  56. 09/22 t/t4*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  57. Taylor BlauMar 16, 2024
  58. Junio C HamanoMar 16, 2024
  59. 04/22 t/annotate-tests.sh: avoid redundant use of catBeat Bolli, Mar 15, 2024
  60. 10/22 t/t5*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  61. 05/22 t/perf: avoid redundant use of catBeat Bolli, Mar 15, 2024
  62. 11/22 t/t6*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  63. 12/22 t/t7*: avoid redundant use of catBeat Bolli, Mar 15, 2024
  64. 13/22 t/t8*: avoid redundant use of catBeat Bolli, Mar 15, 2024
  65. 14/22 t/t9*: avoid redundant uses of catBeat Bolli, Mar 15, 2024
  66. 15/22 t/t1*: merge a "grep | sed" pipelineBeat Bolli, Mar 15, 2024
  67. 16/22 t/t3*: merge a "grep | awk" pipelineBeat Bolli, Mar 15, 2024
  68. Taylor BlauMar 16, 2024
  69. Beat BolliMar 16, 2024
  70. Taylor BlauMar 16, 2024
  71. 17/22 t/t4*: merge a "grep | sed" pipelineBeat Bolli, Mar 15, 2024
  72. 18/22 t/t5*: merge a "grep | sed" pipelineBeat Bolli, Mar 15, 2024
  73. 19/22 t/t8*: merge "grep | sed" pipelinesBeat Bolli, Mar 15, 2024
  74. 20/22 t/t9*: merge "grep | sed" pipelinesBeat Bolli, Mar 15, 2024
  75. 21/22 contrib/coverage-diff: avoid redundant pipelinesBeat Bolli, Mar 15, 2024
  76. 22/22 git-quiltimport: avoid an unnecessary subshellBeat Bolli, Mar 15, 2024
  77. Taylor BlauMar 16, 2024
  78. Junio C HamanoMar 16, 2024

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.