Re: [PATCH RFC 0/5] Introduce git-blame-tree(1) command
From: Marc Branchaud <hidden>
Date: 2025-05-08 13:26:09
On 2025-05-07 16:49, Kristoffer Haugsbakk wrote:
On Wed, May 7, 2025, at 22:23, Marc Branchaud wrote:quoted
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.