git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Emily Shaffer <emilyshaffer@google.com>
To: Johannes Schindelin <Johannes.Schindelin@gmx.de>
Cc: git@vger.kernel.org
Subject: Re: [PATCH v9 2/5] bugreport: add tool to generate debugging info
Date: Thu, 19 Mar 2020 14:39:02 -0700	[thread overview]
Message-ID: <20200319213902.GB45325@google.com> (raw)
In-Reply-To: <nycvar.QRO.7.76.6.2003042232340.46@tvgsbejvaqbjf.bet>

On Wed, Mar 04, 2020 at 10:35:04PM +0100, Johannes Schindelin wrote:
> Hi,
> 
> On Mon, 2 Mar 2020, Emily Shaffer wrote:
> 
> >  .gitignore                      |   1 +
> >  Documentation/git-bugreport.txt |  46 ++++++++++++++
> >  Makefile                        |   5 ++
> >  bugreport.c                     | 105 ++++++++++++++++++++++++++++++++
> >  command-list.txt                |   1 +
> >  strbuf.c                        |   4 ++
> >  strbuf.h                        |   1 +
> >  t/t0091-bugreport.sh            |  61 +++++++++++++++++++
> >  8 files changed, 224 insertions(+)
> >  create mode 100644 Documentation/git-bugreport.txt
> >  create mode 100644 bugreport.c
> >  create mode 100755 t/t0091-bugreport.sh
> 
> Hmm. I am still _quite_ convinced that this would be much better as a
> built-in. Remember, non-built-ins come with a footprint, and I do not
> necessarily think that you will want to spend 3MB on a `git-bugreport`
> executable when you could have it for a couple dozen kilobytes inside
> `git` instead.

This is the kind of stuff I really wanted to get straightened out by
sending the smaller changeset, so I'm glad to be having this
conversation (again, and hopefully for the last time). I read the
replies to this mail, which I'm truncating as I think many of them are
distracting rather than discussion-worthy, and have tried to summarize:

Builtin:
+ Don't have to call out-of-process to identify 'git version --build-options'
+ Better assurance that we aren't shipping a broken bugreport alongside a new
  version
- Binary bloat, possible startup time hit
? Libraries will behave identically to where the user is seeing issues
  (This point is a possible pro but also a possible con; see similar point in
  standalone list)

Standalone:
+ Could investigate libraries who aren't behaving the way they should.
  (This seems like it'd be better addressed by regression tests, and if we're so
  sure that git-bugreport is working with the info at hand correctly, why don't
  we just write the git binary that way too?)
+ Avoid binary bloat in the main executable.
- Have to ship a big standalone binary instead.
- To get accurate version/build info, need to query the Git executable in a new
  process

Of course if I missed capturing something, please add/correct. Some of
these concerns are quantifiable - binary size and overhead, for example
- so I'm planning on doing some experiments in the coming days. I plan
put together the handful of patches in the latest version of the topic
in both standalone and builtin mode, and then gather the following info:

 - Binary size of 'git'
 - Binary size of 'git-bugreport' when applicable
 - Time for "make" following clean
 - Time for 'git status' on an identical real-world repo (I'll use ours,
   without touching the repo state e.g. changing branch or fetching in
   between)
 - Time to editor for 'git bugreport' with the same setup as previous
 - Peak memory footprint during 'git status'

And of course, if there's more to compare that I can quantify, please
let me know that too. I expect I'll be ready to run the experiments by
Monday (taking some time off tomorrow) so there's time for me to hear
about other concerns.

I'll hold off on sharing my own preference until after we've got some
benchmarking to look at, so I can understand the whole picture.

 - Emily

  parent reply	other threads:[~2020-03-19 21:39 UTC|newest]

Thread overview: 273+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-12-13  0:42 [PATCH v4 00/15] add git-bugreport tool Emily Shaffer
2019-12-13  0:42 ` [PATCH v4 01/15] bugreport: add tool to generate debugging info Emily Shaffer
2019-12-13  0:42 ` [PATCH v4 02/15] help: move list_config_help to builtin/help Emily Shaffer
2019-12-13 20:51   ` Junio C Hamano
2019-12-16 21:36     ` Emily Shaffer
2019-12-16 22:19       ` Junio C Hamano
2019-12-16 22:34         ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 03/15] bugreport: gather git version and build info Emily Shaffer
2019-12-13 21:06   ` Junio C Hamano
2019-12-20  1:46     ` Emily Shaffer
2019-12-17 18:45   ` Johannes Schindelin
2019-12-17 20:34     ` Junio C Hamano
2019-12-20  1:25       ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 04/15] help: add shell-path to --build-options Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 05/15] bugreport: add uname info Emily Shaffer
2019-12-13 21:12   ` Junio C Hamano
2020-01-10  2:05   ` Aaron Schrab
2019-12-13  0:43 ` [PATCH v4 06/15] bugreport: add glibc version Emily Shaffer
2019-12-13 21:18   ` Junio C Hamano
2019-12-16 22:39     ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 07/15] bugreport: add curl version Emily Shaffer
2019-12-13 21:27   ` Junio C Hamano
2019-12-16 22:49     ` Emily Shaffer
2019-12-17 18:47   ` Johannes Schindelin
2019-12-13  0:43 ` [PATCH v4 08/15] bugreport: include user interactive shell Emily Shaffer
2019-12-13 21:38   ` Junio C Hamano
2019-12-13  0:43 ` [PATCH v4 09/15] bugreport: generate config safelist based on docs Emily Shaffer
2019-12-13 22:57   ` Junio C Hamano
2019-12-16 23:01     ` Emily Shaffer
2019-12-17  0:41       ` Emily Shaffer
2019-12-15 20:17   ` Johannes Schindelin
2019-12-16 22:52     ` Emily Shaffer
2019-12-17 18:38   ` Johannes Schindelin
2019-12-13  0:43 ` [PATCH v4 10/15] bugreport: add config values from safelist Emily Shaffer
2019-12-13 21:45   ` Junio C Hamano
2019-12-16 23:40     ` Emily Shaffer
2019-12-17 17:43       ` Junio C Hamano
2020-01-24  3:29         ` Emily Shaffer
2019-12-29 20:17   ` Johannes Schindelin
2019-12-13  0:43 ` [PATCH v4 11/15] bugreport: collect list of populated hooks Emily Shaffer
2019-12-13 21:47   ` Junio C Hamano
2019-12-16 23:51     ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 12/15] bugreport: count loose objects Emily Shaffer
2019-12-13 21:51   ` Junio C Hamano
2019-12-16 23:54     ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 13/15] bugreport: add packed object summary Emily Shaffer
2019-12-13 21:56   ` Junio C Hamano
2019-12-16 23:56     ` Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer
2019-12-13  0:43 ` [PATCH v4 15/15] bugreport: summarize contents of alternates file Emily Shaffer
2020-01-24  3:34 ` [PATCH v5 00/15] add git-bugreport tool emilyshaffer
2020-01-24  3:34   ` [PATCH v5 01/15] bugreport: add tool to generate debugging info emilyshaffer
2020-01-30 22:18     ` Martin Ågren
2020-02-04 22:00       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 02/15] help: move list_config_help to builtin/help emilyshaffer
2020-01-30 22:19     ` Martin Ågren
2020-02-04  0:53       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 03/15] bugreport: gather git version and build info emilyshaffer
2020-01-30 22:19     ` Martin Ågren
2020-02-04 22:21       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 04/15] help: add shell-path to --build-options emilyshaffer
2020-01-30 22:21     ` Martin Ågren
2020-01-24  3:34   ` [PATCH v5 05/15] bugreport: add uname info emilyshaffer
2020-01-24  3:34   ` [PATCH v5 06/15] bugreport: add compiler info emilyshaffer
2020-01-30 22:21     ` Martin Ågren
2020-02-04 22:51       ` Emily Shaffer
2020-02-05 19:47         ` Martin Ågren
2020-01-24  3:34   ` [PATCH v5 07/15] bugreport: add curl version emilyshaffer
2020-01-30 22:27     ` Martin Ågren
2020-02-04 22:54       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 08/15] bugreport: include user interactive shell emilyshaffer
2020-01-30 22:28     ` Martin Ågren
2020-02-04 23:16       ` Emily Shaffer
2020-02-05 20:06       ` Junio C Hamano
2020-02-05 20:14         ` Martin Ågren
2020-01-24  3:34   ` [PATCH v5 09/15] bugreport: generate config safelist based on docs emilyshaffer
2020-01-30 22:34     ` Martin Ågren
2020-02-05  0:44       ` Emily Shaffer
2020-02-05 19:53         ` Martin Ågren
2020-01-31 21:20     ` Martin Ågren
2020-02-05  0:30       ` Emily Shaffer
2020-02-05  0:52         ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 10/15] bugreport: add config values from safelist emilyshaffer
2020-01-30 22:36     ` Martin Ågren
2020-02-05  1:34       ` Emily Shaffer
2020-01-31 21:25     ` Martin Ågren
2020-02-05  2:31       ` Emily Shaffer
2020-02-05 20:12         ` Martin Ågren
2020-01-24  3:34   ` [PATCH v5 11/15] bugreport: collect list of populated hooks emilyshaffer
2020-02-04 18:44     ` Junio C Hamano
2020-02-05  2:48       ` Emily Shaffer
2020-02-05  3:00         ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 12/15] bugreport: count loose objects emilyshaffer
2020-02-04 18:48     ` Junio C Hamano
2020-02-05  2:50       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 13/15] bugreport: add packed object summary emilyshaffer
2020-02-04 19:00     ` Junio C Hamano
2020-02-05  3:15       ` Emily Shaffer
2020-02-04 19:03     ` Junio C Hamano
2020-02-05  3:09       ` Emily Shaffer
2020-01-24  3:34   ` [PATCH v5 14/15] bugreport: list contents of $OBJDIR/info emilyshaffer
2020-01-24  3:34   ` [PATCH v5 15/15] bugreport: summarize contents of alternates file emilyshaffer
2020-01-24  3:38   ` [PATCH v5 00/15] add git-bugreport tool Emily Shaffer
2020-01-28 23:04   ` Jonathan Tan
2020-01-28 23:26     ` Emily Shaffer
2020-01-30 22:15   ` Martin Ågren
2020-02-04  0:07     ` Emily Shaffer
2020-02-06  0:40   ` [PATCH v6 " Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 01/15] help: move list_config_help to builtin/help Emily Shaffer
2020-02-06  1:35       ` Danh Doan
2020-02-13 22:58         ` Emily Shaffer
2020-02-13 23:07           ` Eric Sunshine
2020-02-13 23:24             ` Junio C Hamano
2020-02-13 23:29               ` Eric Sunshine
2020-02-14  1:20                 ` Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 02/15] help: add shell-path to --build-options Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 03/15] bugreport: add tool to generate debugging info Emily Shaffer
2020-02-07 14:18       ` SZEDER Gábor
2020-02-07 18:51         ` Junio C Hamano
2020-02-11 22:40           ` Emily Shaffer
2020-02-07 14:54       ` SZEDER Gábor
2020-02-12 18:06       ` Junio C Hamano
2020-02-12 22:36         ` Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 04/15] bugreport: gather git version and build info Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 05/15] bugreport: add uname info Emily Shaffer
2020-02-06  0:40     ` [PATCH v6 06/15] bugreport: add compiler info Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 07/15] bugreport: add git-remote-https version Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 08/15] bugreport: include user interactive shell Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 09/15] bugreport: generate config safelist based on docs Emily Shaffer
2020-02-07 15:30       ` SZEDER Gábor
2020-02-13 23:14         ` Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 10/15] bugreport: add config values from safelist Emily Shaffer
2020-02-07 14:47       ` SZEDER Gábor
2020-02-07 15:08         ` SZEDER Gábor
2020-02-07 16:24           ` Eric Sunshine
2020-02-07 16:51             ` Andreas Schwab
2020-02-13 22:02               ` Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 11/15] bugreport: collect list of populated hooks Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 12/15] bugreport: count loose objects Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 13/15] bugreport: add packed object summary Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer
2020-02-06  0:41     ` [PATCH v6 15/15] bugreport: summarize contents of alternates file Emily Shaffer
2020-02-14  1:53     ` [PATCH v7 00/15] add git-bugreport tool Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 01/15] help: move list_config_help to builtin/help Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 02/15] help: add shell-path to --build-options Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 03/15] bugreport: add tool to generate debugging info Emily Shaffer
2020-02-14 17:25         ` Junio C Hamano
2020-02-15  1:57           ` Emily Shaffer
2020-02-15 18:24             ` Junio C Hamano
2020-02-18 23:46               ` Emily Shaffer
2020-02-18 23:56                 ` Emily Shaffer
2020-02-19 23:15                   ` Emily Shaffer
2020-02-19 23:24                     ` Junio C Hamano
2020-02-19 14:18         ` Johannes Schindelin
2020-02-19 16:55           ` Junio C Hamano
2020-02-19 21:52             ` Emily Shaffer
2020-02-19 22:09               ` Junio C Hamano
2020-02-19 23:06                 ` Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 04/15] bugreport: gather git version and build info Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 05/15] bugreport: add uname info Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 06/15] bugreport: add compiler info Emily Shaffer
2020-02-19 14:23         ` Johannes Schindelin
2020-02-19 22:45           ` Emily Shaffer
2020-02-20 22:33             ` Johannes Schindelin
2020-02-20 23:33               ` Emily Shaffer
2020-02-21 15:22                 ` Johannes Schindelin
2020-02-22  0:04                   ` Emily Shaffer
2020-02-24  2:55                     ` Junio C Hamano
2020-02-14  1:53       ` [PATCH v7 07/15] bugreport: add git-remote-https version Emily Shaffer
2020-02-19 14:28         ` Johannes Schindelin
2020-02-19 22:28           ` Emily Shaffer
2020-02-19 22:33             ` Junio C Hamano
2020-02-20 22:33               ` Johannes Schindelin
2020-02-14  1:53       ` [PATCH v7 08/15] bugreport: include user interactive shell Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 09/15] bugreport: generate config safelist based on docs Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 10/15] bugreport: add config values from safelist Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 11/15] bugreport: collect list of populated hooks Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 12/15] bugreport: count loose objects Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 13/15] bugreport: add packed object summary Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer
2020-02-14 17:04         ` Junio C Hamano
2020-02-18 23:59           ` Emily Shaffer
2020-02-14  1:53       ` [PATCH v7 15/15] bugreport: summarize contents of alternates file Emily Shaffer
2020-02-14 17:32       ` [PATCH v7 00/15] add git-bugreport tool Junio C Hamano
2020-02-14 22:00         ` Emily Shaffer
2020-02-14 22:30           ` Junio C Hamano
2020-02-20  1:58       ` [PATCH v8 " Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 01/15] help: move list_config_help to builtin/help Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 02/15] help: add shell-path to --build-options Emily Shaffer
2020-02-20 19:03           ` Junio C Hamano
2020-02-20 21:15             ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 03/15] bugreport: add tool to generate debugging info Emily Shaffer
2020-02-20 19:33           ` Junio C Hamano
2020-02-20 22:33             ` Emily Shaffer
2020-02-26 16:12           ` Johannes Schindelin
2020-02-20  1:58         ` [PATCH v8 04/15] bugreport: gather git version and build info Emily Shaffer
2020-02-20 20:07           ` Junio C Hamano
2020-02-20 23:03             ` Emily Shaffer
2020-02-20 23:18               ` Junio C Hamano
2020-02-20  1:58         ` [PATCH v8 05/15] bugreport: add uname info Emily Shaffer
2020-02-20 20:12           ` Junio C Hamano
2020-02-20 23:20             ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 06/15] bugreport: add compiler info Emily Shaffer
2020-02-20  2:49           ` Danh Doan
2020-02-20 23:23             ` Emily Shaffer
2020-02-20 20:23           ` Junio C Hamano
2020-02-21  0:26           ` Junio C Hamano
2020-02-20  1:58         ` [PATCH v8 07/15] bugreport: add git-remote-https version Emily Shaffer
2020-02-20 20:35           ` Junio C Hamano
2020-02-20 23:28             ` Emily Shaffer
2020-02-21  3:44               ` Junio C Hamano
2020-02-25 22:08                 ` Emily Shaffer
2020-02-25 22:26                   ` Junio C Hamano
2020-02-25 23:29                     ` Emily Shaffer
2020-02-25 23:29                   ` Junio C Hamano
2020-02-25 23:55                     ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 08/15] bugreport: include user interactive shell Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 09/15] bugreport: generate config safelist based on docs Emily Shaffer
2020-02-20 20:40           ` Junio C Hamano
2020-02-26 16:13           ` Johannes Schindelin
2020-02-26 16:49             ` Junio C Hamano
2020-02-20  1:58         ` [PATCH v8 10/15] bugreport: add config values from safelist Emily Shaffer
2020-02-20 20:47           ` Junio C Hamano
2020-02-20  1:58         ` [PATCH v8 11/15] bugreport: collect list of populated hooks Emily Shaffer
2020-02-20 20:58           ` Junio C Hamano
2020-02-25 23:19             ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 12/15] bugreport: count loose objects Emily Shaffer
2020-02-20 21:04           ` Junio C Hamano
2020-02-25 23:22             ` Emily Shaffer
2020-02-25 23:26               ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 13/15] bugreport: add packed object summary Emily Shaffer
2020-02-20 22:04           ` Junio C Hamano
2020-02-25 23:58             ` Emily Shaffer
2020-02-20  1:58         ` [PATCH v8 14/15] bugreport: list contents of $OBJDIR/info Emily Shaffer
2020-02-20 22:18           ` Junio C Hamano
2020-02-20  1:58         ` [PATCH v8 15/15] bugreport: summarize contents of alternates file Emily Shaffer
2020-02-20 14:08           ` Johannes Schindelin
2020-02-20 22:22           ` Junio C Hamano
2020-03-02 23:03         ` [PATCH v9 0/5] add git-bugreport tool Emily Shaffer
2020-03-02 23:03           ` [PATCH v9 1/5] help: move list_config_help to builtin/help Emily Shaffer
2020-03-02 23:03           ` [PATCH v9 2/5] bugreport: add tool to generate debugging info Emily Shaffer
2020-03-03 14:18             ` Johannes Schindelin
2020-03-04 21:35             ` Johannes Schindelin
2020-03-05 23:34               ` Jeff Hostetler
2020-03-06 13:57                 ` Johannes Schindelin
2020-03-06 18:25                   ` Junio C Hamano
2020-03-06 18:08                 ` Junio C Hamano
2020-03-06 18:58                   ` Jeff Hostetler
2020-03-08 22:24                   ` Johannes Schindelin
2020-03-09 14:59                     ` Junio C Hamano
2020-03-09 19:17                       ` Johannes Schindelin
2020-03-09 19:47                         ` Junio C Hamano
2020-03-10 11:42                           ` Johannes Schindelin
2020-03-10 18:37                             ` Junio C Hamano
2020-03-10 22:08                               ` Johannes Schindelin
2020-03-19 21:39               ` Emily Shaffer [this message]
2020-03-20  0:28                 ` Junio C Hamano
2020-03-20 15:35                   ` Johannes Schindelin
2020-03-23 18:52                     ` Emily Shaffer
2020-03-20 15:42                 ` Johannes Schindelin
2020-03-23 18:50                   ` Emily Shaffer
2020-03-20 17:43                 ` Junio C Hamano
2020-03-20 22:38                   ` Johannes Schindelin
2020-03-20 22:47                     ` Junio C Hamano
2020-03-21 10:53                       ` Johannes Schindelin
2020-03-02 23:03           ` [PATCH v9 3/5] bugreport: gather git version and build info Emily Shaffer
2020-03-23 21:20             ` Junio C Hamano
2020-03-02 23:03           ` [PATCH v9 4/5] bugreport: add uname info Emily Shaffer
2020-03-02 23:04           ` [PATCH v9 5/5] bugreport: add compiler info Emily Shaffer
2020-03-03 11:46             ` Danh Doan
2020-03-03 14:07             ` Junio C Hamano
2020-03-04 21:39             ` Johannes Schindelin
2020-03-23 21:27               ` Emily Shaffer

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200319213902.GB45325@google.com \
    --to=emilyshaffer@google.com \
    --cc=Johannes.Schindelin@gmx.de \
    --cc=git@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).