On Wed, Jul 21, 2021 at 09:26:38AM +0200, Ævar Arnfjörð Bjarmason wrote: > <digression> > > I do think in general this recent proliferation of t/helper over new > plumbing built-ins has sent git a bit in the wrong direction. > > E.g. I think the likes of t/helper/test-pkt-line.c should really be a > plumbing tool, the same goes for many (but not all) the test tool, we > could just document them as being "unstable plumbing" or whatever. FWIW, I agree with you here. These kind of "inspection" tools are handy when you are debugging something. Building a copy of test-tool on a production system is only a mild inconvenience for me, but not being able to ask a user things like "what does git pack-bitmap --dump .git/objects/pack*.bitmap say" is occasionally quite annoying. The flip side is that we expect the overall quality of user-visible tools to be a bit higher, and we're generally on the hook to keep supporting them. Maybe that's solvable with documentation. I dunno. > But I think I've been losing that argument recently, e.g. after [1] > (which I argued we should put into git-ls-files) even things like git's > basic idea of the state of the index are exposed in some helpers, but > not corresponding plumbing. Yeah. I wish "ls-files --debug" showed more of the extension data, for example. > Anyway, even if we assume that's an argument that would carry the day in > general I'd find it hard to justify git-env--helper being a thing that > should be exposed to users or post-"make install", it's purely for the > use of our own test suite. Yeah, I'd agree with that. The most valuable helpers to me are the ones that help us understand what Git is seeing, or what's in a binary file format. Obscure-case "functional" helpers are less likely to be generally useful. -Peff