Thanks for the patience with the long wait, all. Here's an attempt at the rewrite in C; I think it does verbatim what the sh version did except that this doesn't print the reflog - Jonathan Nieder was good enough to point out to me that folks probably don't want to share their commit subjects all willy-nilly if they're working on something secretive. For the most part I hoped to do this stuff stupidly - that is to say, independent of the libraries within Git - in an effort to both avoid bitrot, and see what is (as opposed to what the libraries think should be). The one common patch with v2 is "generate config whitelist based on docs", which I have not changed at all. I look forward to everyone's suggestions. - Emily Emily Shaffer (9): bugreport: add tool to generate debugging info bugreport: generate config whitelist based on docs bugreport: add version and system information bugreport: add config values from whitelist bugreport: collect list of populated hooks bugreport: count loose objects bugreport: add packed object summary bugreport: list contents of $OBJDIR/info bugreport: print contents of alternates file .gitignore | 1 + Documentation/config/sendemail.txt | 68 +++--- Makefile | 11 +- bugreport-generate-config-whitelist.sh | 4 + bugreport.c | 314 +++++++++++++++++++++++++ bugreport.h | 44 ++++ builtin.h | 1 + builtin/bugreport.c | 90 +++++++ git.c | 1 + 9 files changed, 499 insertions(+), 35 deletions(-) create mode 100755 bugreport-generate-config-whitelist.sh create mode 100644 bugreport.c create mode 100644 bugreport.h create mode 100644 builtin/bugreport.c -- 2.24.0.rc0.303.g954a862665-goog