On Mon, Aug 01 2022, Victoria Dye via GitGitGadget wrote: > [...] I didn't see a major UX benefit of 'git diagnose' vs 'git > bugreport --diagnose', so I went with the latter, simpler approach. I really wanted to like this, but I find the end result here really confusing from a UX perspective. You can now run "git bugreport --diagnose", which creates a giant *.zip file to go along with your *.txt, but your *.txt makes no reference to it. Should you ... attach it to your bug report to this mailing list, do something else? The documentation doesn't offer much in the way of hints, other than suggesting (with --no-report) that this --diagnose is for something entirely different (and that's how "scalar" uses it). I know what it's really for after reading this series, but for "git bugreport" in particular we should be really careful about not making the UX confusing. The generated *.zip contains some really deep info about your repo (and not just metadata, e.g. copies of the index, various logs etc.), someone e.g. in a proprietary setting really doesn't want to be sharing that info. So I would like to see real integration into "git bugreport", i.e. for us to smartly report more repository metrics, e.g. approx number of loose objects, the sort of state "__git_ps1" might report, etc. But I think the end-state here makes things much more confusing for users. > An alternative implementation considered was creating a new 'git diagnose' > builtin, but the new command would end up duplicating much of > 'builtin/bugreport.c'. It seems we always "return" from cmd_bugreport() quite quickly, and we basically only share the code to create the output directory. Just duplicating or sharing that seems like a much better approach for now than creating the above UX confusion. Note that you can also share code between multiple built-ins, even in the same file (see e.g. builtin/{checkout,log}.c). So we could even share something like the safe_create_leading_directories() calling code in bugreport.c without libifying it. > Finally, despite 'scalar diagnose' now being nothing more than a wrapper for > 'git bugreport --diagnose', it is not being deprecated in this series. > Although deprecation -> removal could be a future cleanup effort, 'scalar > diagnose' is kept around for now as an alias for users already accustomed to > using it in 'scalar'. We don't have a "make install" to get a "scalar" onto user's systems yet, do we really need to worry about those users? Or is this a reference to the out-of-tree version of "scalar", not git.git's?