From: Marc Branchaud Date: Thu, 08 May 2025 13:26:05 GMT Subject: Re: [PATCH RFC 0/5] Introduce git-blame-tree(1) command Message-ID: In-Reply-To: <9a0c98d1-4a77-4f2e-9aa9-bbab11b3e44d@app.fastmail.com> On 2025-05-07 16:49, Kristoffer Haugsbakk wrote: > On Wed, May 7, 2025, at 22:23, Marc Branchaud wrote: >> I agree that blaming is a well-(known) concept. I also agree that most >> users would understand what blame-tree would do, *once they find it*. >> >> But I think that's beside the point I'm trying to make. Git is >> notorious for making users learn countless commands, and having two >> slightly-different commands for blaming is just going to make that worse. > > Use a Git user I don’t see the problem. `git --list-cmds=builtins` > lists 144 commands. Six of them are `-tree` commands. None of the -tree commands are porcelain meant for regular use, and only merge-tree is "ancillary". The rest are all plumbing. These are hardly the commands normal users will use. I've been using and scripting Git for a great many years, and I think I've maybe used read-tree a handful of times. (I see that --list-cmds is experimental and only documented deep within "git help git". You seem to be a very advanced Git user!) > It’s not been my understanding that people stumble upon niche commands > that easily. Yes, I agree. That seems to support the point I've been trying to make... > Most questions I’ve seen about git-commit-tree(1) (one of > the `-tree` commands that seems to come up from time to time) seem to > come from a point of idle curiosity. That’s questions that bring it up > (i.e. potential user confusion). > > (The first impression I got of `-tree` commands was that they were less > user-friendly commands for hardcore users.) Of course they're less user-friendly: They're not porcelain. > That’s just my perspective. Do you have a case in mind where such a new > command could lead to user confusion? Only decades of experience writing and using software. Bloating Git's command set should only be done after serious consideration of alternatives. If I were not subscribed to this list, and Git went ahead with "blame-tree", I would most likely never learn about it. Since I do know about "blame", if the feature were part of that command then I have a good chance of discovering it the next time I read blame's documentation. M.