git/builtin
Phillip Wood 082caf527e submodule status: propagate SIGPIPE
It has been reported than running

     git submodule status --recurse | grep -q ^+

results in an unexpected error message

    fatal: failed to recurse into submodule $submodule

When "git submodule--helper" recurses into a submodule it creates a
child process. If that process fails then the error message above is
displayed by the parent. In the case above the child is killed by
SIGPIPE as "grep -q" exits as soon as it sees the first match. Fix this
by propagating SIGPIPE so that it is visible to the process running
git. We could propagate other signals but I'm not sure there is much
value in doing that. In the common case of the user pressing Ctrl-C or
Ctrl-\ then SIGINT or SIGQUIT will be sent to the foreground process
group and so the parent process will receive the same signal as the
child.

Reported-by: Matt Liberty <mliberty@precisioninno.com>
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-09-20 13:07:03 -07:00
..
add.c add-i: finally retire add.interactive.useBuiltin 2024-06-05 14:53:26 -07:00
am.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
annotate.c
apply.c apply: fix uninitialized hash function 2024-05-21 09:07:48 -07:00
archive.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
bisect.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
blame.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
branch.c Merge branch 'kn/ref-transaction-symref' 2024-05-20 11:20:04 -07:00
bugreport.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
bundle.c builtin/bundle: have unbundle check for repo before opening its bundle 2024-08-13 10:26:20 -07:00
cat-file.c object-name: free leaking object contexts 2024-06-11 13:15:05 -07:00
check-attr.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00
check-ignore.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
check-mailmap.c
check-ref-format.c
checkout--worker.c
checkout-index.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00
checkout.c Merge branch 'jc/checkout-no-op-switch-errors' into maint-2.46 2024-08-16 12:50:51 -07:00
clean.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00
clone.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
column.c column: disallow negative padding 2024-02-13 10:18:50 -08:00
commit-graph.c Merge branch 'ja/doc-placeholders-fix' 2024-02-08 13:20:34 -08:00
commit-tree.c commit: fix leaking parents when calling `commit_tree_extended()` 2024-06-11 13:15:07 -07:00
commit.c Merge branch 'tn/doc-commit-fix' into maint-2.46 2024-08-16 12:50:54 -07:00
config.c git-config.1: fix description of --regexp in synopsis 2024-08-26 11:49:37 -07:00
count-objects.c
credential-cache--daemon.c Merge branch 'bc/credential-scheme-enhancement' 2024-05-08 10:18:44 -07:00
credential-cache.c Merge branch 'bc/credential-scheme-enhancement' 2024-05-08 10:18:44 -07:00
credential-store.c credential: gate new fields on capability 2024-04-16 22:39:06 -07:00
credential.c builtin/credential: clear credential before exit 2024-05-27 11:20:01 -07:00
describe.c Merge branch 'as/describe-broken-refresh-index-fix' 2024-07-15 10:11:40 -07:00
diagnose.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
diff-files.c
diff-index.c
diff-tree.c Merge branch 'xx/diff-tree-remerge-diff-fix' into maint-2.46 2024-08-26 11:10:25 -07:00
diff.c builtin/diff: explicitly set hash algo when there is no repo 2024-05-06 22:50:49 -07:00
difftool.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
fast-export.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
fast-import.c hash: require hash algorithm in `is_empty_{blob,tree}_oid()` 2024-06-14 10:26:33 -07:00
fetch-pack.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
fetch.c Merge branch 'kn/update-ref-symref' 2024-06-20 15:45:12 -07:00
fmt-merge-msg.c parse-options: fix leaks for users of OPT_FILENAME 2024-06-11 13:15:04 -07:00
for-each-ref.c ref-filter: properly distinuish pseudo and root refs 2024-05-15 07:30:52 -07:00
for-each-repo.c for-each-repo: optionally keep going on an error 2024-04-24 10:46:03 -07:00
fsck.c cocci: apply rules to rewrite callers of "refs" interfaces 2024-05-07 10:06:59 -07:00
fsmonitor--daemon.c
gc.c Merge branch 'js/for-each-repo-keep-going' into maint-2.45 2024-06-28 15:53:08 -07:00
get-tar-commit-id.c set errno=0 before strtoX calls 2024-08-05 10:59:20 -07:00
grep.c object-name: free leaking object contexts 2024-06-11 13:15:05 -07:00
hash-object.c builtin/hash-object: fix uninitialized hash function 2024-05-21 09:05:13 -07:00
help.c
hook.c
index-pack.c builtin/index-pack: fix segfaults when running outside of a repo 2024-09-04 07:40:00 -07:00
init-db.c refs: convert ref storage format to an enum 2024-06-06 09:04:31 -07:00
interpret-trailers.c Merge branch 'la/hide-trailer-info' 2024-05-23 11:04:27 -07:00
log.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
ls-files.c factor out strbuf_expand_bad_format() 2024-03-25 11:59:24 -07:00
ls-remote.c builtin/ls-remote: fall back to SHA1 outside of a repo 2024-08-02 08:24:05 -07:00
ls-tree.c object-name: free leaking object contexts 2024-06-11 13:15:05 -07:00
mailinfo.c
mailsplit.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
merge-base.c commit-reach(repo_get_merge_bases_many_dirty): pass on errors 2024-02-29 08:06:01 -08:00
merge-file.c
merge-index.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00
merge-ours.c
merge-recursive.c builtin/merge-recursive: fix leaking object ID bases 2024-06-11 13:15:06 -07:00
merge-tree.c merge: fix leaking merge bases 2024-06-11 13:15:08 -07:00
merge.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
mktag.c
mktree.c
multi-pack-index.c parse-options: fix leaks for users of OPT_FILENAME 2024-06-11 13:15:04 -07:00
mv.c mv: replace src_dir with a strvec 2024-05-30 08:55:29 -07:00
name-rev.c cocci: apply rules to rewrite callers of "refs" interfaces 2024-05-07 10:06:59 -07:00
notes.c notes: do not trigger editor when adding an empty note 2024-07-29 15:31:30 -07:00
pack-objects.c Merge branch 'ps/use-the-repository' 2024-07-02 09:59:00 -07:00
pack-redundant.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
pack-refs.c builtin/pack-refs: introduce new "--auto" flag 2024-03-25 09:54:07 -07:00
patch-id.c Revert "Merge branch 'jc/patch-id' into maint-2.46" 2024-09-16 15:12:06 -07:00
prune-packed.c
prune.c
pull.c Merge branch 'ps/use-the-repository' 2024-07-02 09:59:00 -07:00
push.c builtin/push: call set_refspecs after validating remote 2024-07-12 09:14:11 -07:00
range-diff.c
read-tree.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00
rebase.c Merge branch 'pw/rebase-i-error-message' 2024-06-20 15:45:15 -07:00
receive-pack.c Merge branch 'ps/use-the-repository' 2024-07-02 09:59:00 -07:00
reflog.c refs: remove `dwim_log()` 2024-05-17 10:33:39 -07:00
refs.c builtin/refs: new command to migrate ref storage formats 2024-06-06 09:04:34 -07:00
remote-ext.c
remote-fd.c
remote.c Merge branch 'jk/remote-wo-url' 2024-07-02 09:59:01 -07:00
repack.c Merge branch 'ps/leakfixes' 2024-06-06 12:49:23 -07:00
replace.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
replay.c commit: fix leaking parents when calling `commit_tree_extended()` 2024-06-11 13:15:07 -07:00
rerere.c
reset.c Merge branch 'ps/refs-without-the-repository' 2024-05-16 10:10:14 -07:00
rev-list.c builtin/rev-list: fix leaking bitmap index when calculating disk usage 2024-06-11 13:15:05 -07:00
rev-parse.c object-name: free leaking object contexts 2024-06-11 13:15:05 -07:00
revert.c global: improve const correctness when assigning string constants 2024-06-07 10:30:48 -07:00
rm.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
send-pack.c send-pack: always allocate receive status 2024-06-07 10:30:53 -07:00
shortlog.c revision: free diff options 2024-06-11 13:15:06 -07:00
show-branch.c cocci: apply rules to rewrite callers of "refs" interfaces 2024-05-07 10:06:59 -07:00
show-index.c
show-ref.c Merge branch 'jc/heads-are-branches' 2024-06-20 15:45:17 -07:00
sparse-checkout.c Merge branch 'ps/leakfixes-more' 2024-07-08 14:53:10 -07:00
stash.c Merge branch 'ps/stash-keep-untrack-empty-fix' into maint-2.46 2024-09-13 15:26:51 -07:00
stripspace.c strbuf: accept a comment string for strbuf_add_commented_lines() 2024-03-12 13:28:10 -07:00
submodule--helper.c submodule status: propagate SIGPIPE 2024-09-20 13:07:03 -07:00
symbolic-ref.c Merge branch 'kn/ref-transaction-symref' 2024-05-20 11:20:04 -07:00
tag.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
unpack-file.c
unpack-objects.c hash: require hash algorithm in `oidread()` and `oidclr()` 2024-06-14 10:26:32 -07:00
update-index.c refs: refactor `resolve_gitlink_ref()` to accept a repository 2024-05-17 10:33:38 -07:00
update-ref.c Merge branch 'ps/use-the-repository' 2024-07-02 09:59:00 -07:00
update-server-info.c
upload-archive.c
upload-pack.c Sync with 2.44.1 2024-04-29 20:42:30 +02:00
var.c var(win32): do report the GIT_SHELL_PATH that is actually used 2024-07-13 16:23:37 -07:00
verify-commit.c
verify-pack.c
verify-tag.c
worktree.c Merge branch 'ps/leakfixes' 2024-06-06 12:49:23 -07:00
write-tree.c builtin: stop using `the_index` 2024-04-18 12:30:42 -07:00