- Notifications
You must be signed in to change notification settings - Fork26.4k
Commita082345
hook API: fix v2.36.0 regression: hooks should be connected to a TTY
Fix a regression reported[1] againstf443246 (commit: convert{pre-commit,prepare-commit-msg} hook to hook.h, 2021-12-22): Due tousing the run_process_parallel() API in the earlier96e7225 (hook:add 'run' subcommand, 2021-12-22) we'd capture the hook's stderr andstdout, and thus lose the connection to the TTY in the case ofe.g. the "pre-commit" hook.As a preceding commit notes GNU parallel's similar --ungroup optionalso has it emit output faster. While we're unlikely to have hooksthat emit truly massive amounts of output (or where the performancethereof matters) it's still informative to measure the overhead. In asimilar "seq" test we're now ~30% faster:$ cat .git/hooks/seq-hook; git hyperfine -L rev origin/master,HEAD~0 -s 'make CFLAGS=-O3' './git hook run seq-hook'#!/bin/shseq 100000000Benchmark 1: ./git hook run seq-hook' in 'origin/master Time (mean ± σ): 787.1 ms ± 13.6 ms [User: 701.6 ms, System: 534.4 ms] Range (min … max): 773.2 ms … 806.3 ms 10 runsBenchmark 2: ./git hook run seq-hook' in 'HEAD~0 Time (mean ± σ): 603.4 ms ± 1.6 ms [User: 573.1 ms, System: 30.3 ms] Range (min … max): 601.0 ms … 606.2 ms 10 runsSummary './git hook run seq-hook' in 'HEAD~0' ran 1.30 ± 0.02 times faster than './git hook run seq-hook' in 'origin/master'1.https://lore.kernel.org/git/CA+dzEBn108QoMA28f0nC8K21XT+Afua0V2Qv8XkR8rAeqUCCZw@mail.gmail.com/Reported-by: Anthony Sottile <asottile@umich.edu>Signed-off-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>[jc: minor fix-up to tests for consistency]Signed-off-by: Junio C Hamano <gitster@pobox.com>1 parentfd3aaf5 commita082345
2 files changed
+32
-0
lines changedLines changed: 1 addition & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
144 | 144 |
| |
145 | 145 |
| |
146 | 146 |
| |
| 147 | + | |
147 | 148 |
| |
148 | 149 |
| |
149 | 150 |
| |
|
Lines changed: 31 additions & 0 deletions
Original file line number | Diff line number | Diff line change | |
---|---|---|---|
| |||
4 | 4 |
| |
5 | 5 |
| |
6 | 6 |
| |
| 7 | + | |
7 | 8 |
| |
8 | 9 |
| |
9 | 10 |
| |
| |||
120 | 121 |
| |
121 | 122 |
| |
122 | 123 |
| |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
123 | 154 |
|
0 commit comments
Comments
(0)