{"thread":{"id":"64455","subject":"git whatchanged","startedAt":"2025-11-07T11:48:47Z","lastAt":"2025-11-07T14:31:26Z","messageCount":4,"participants":["Franz Brauße","Kristoffer Haugsbakk"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"530363","messageId":"20251107124041.d6aac4345e89a9ac092c59e3@paxle.org","threadId":"64455","inReplyTo":null,"subject":"git whatchanged","fromName":"Franz Brauße","fromEmail":"fb@paxle.org","sentAt":"2025-11-07T11:40:41Z","receivedAt":"2025-11-07T11:48:47Z","isPatch":false,"sender":{"key":"fb@paxle.org","avatar":null},"body":"Dear git maintainers,\n\nI am using \"git whatchanged\" on a regular basis to understand what\nfiles specific commits touched and in what way. I vote for not removing\nthis functionality from git.\n\nMany thanks,\nFranz Brauße\n"},{"id":"530364","messageId":"671d53bd-952f-4849-9e5e-910e49d4c4e4@app.fastmail.com","threadId":"64455","inReplyTo":"20251107124041.d6aac4345e89a9ac092c59e3@paxle.org","subject":"Re: git whatchanged","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2025-11-07T13:11:52Z","receivedAt":"2025-11-07T13:12:28Z","isPatch":false,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Fri, Nov 7, 2025, at 12:40, Franz Brauße wrote:\n> I am using \"git whatchanged\" on a regular basis to understand what\n> files specific commits touched and in what way.\n\nThis command is being removed because it was supplanted by git-log(1) a\nlong while ago. Both commands use the same machinery, just with\ndifferent defaults.\n\nYou can replace it with `git log` in this way:\n\n• Given: `git whatchanged <opts>`\n• Replace with: `git log <opts> --no-merges --raw`\n\nAdditionally for the sake of readability, you might have more\nuse for `--stat` or `--name-only` rather than `--raw` if you are only\nreading the output (not feeding the output to another program).\n\n> I vote for not removing this functionality from git.\n\nThe intent behind the message was not to cast a vote but I can totally\nunderstand it being read that way.\n\nSee: https://git-scm.com/docs/BreakingChanges\n\n-- \nKristoffer Haugsbakk\n"},{"id":"530368","messageId":"20251107151620.2663adc25fec743cf1852d32@paxle.org","threadId":"64455","inReplyTo":"671d53bd-952f-4849-9e5e-910e49d4c4e4@app.fastmail.com","subject":"Re: git whatchanged","fromName":"Franz Brauße","fromEmail":"fb@paxle.org","sentAt":"2025-11-07T14:16:20Z","receivedAt":"2025-11-07T14:16:22Z","isPatch":false,"sender":{"key":"fb@paxle.org","avatar":null},"body":"On Fri, 07 Nov 2025 14:11:52 +0100 \"Kristoffer Haugsbakk\"\n<kristofferhaugsbakk@fastmail.com> wrote:\n> This command is being removed because it was supplanted by git-log(1) a\n> long while ago. Both commands use the same machinery, just with\n> different defaults.\n> \n> You can replace it with `git log` in this way:\n> [snip]\n> See: https://git-scm.com/docs/BreakingChanges\n\nThank you for the additional infos and the link, I didn't know that! I\nsuppose when it's being removed, I can resurrect the \"whatchanged\"\nsubcommand via the config's alias mechanism (git wh<TAB> is just baked\ninto my fingers at the moment).\n\nMight I suggest that for future deprecations instead of an annoying to\ntype flag just a message like \"this command is scheduled for removal in\nv<VERSION>, see <URL>; use \"git log --raw --no-merges\" for similar\nfunctionality\" is printed in addition to the command still working as\nbefore while it's there? Similar to how \"git pull\" informs users about\nthe rebase vs. merge options in case of diverged branches?\n\nAnyhow, thanks again for all your work on this extremely nice tool!\n\nFranz\n"},{"id":"530369","messageId":"8883dc77-5894-4d9c-84d3-c29a434207d2@app.fastmail.com","threadId":"64455","inReplyTo":"20251107151620.2663adc25fec743cf1852d32@paxle.org","subject":"Re: git whatchanged","fromName":"Kristoffer Haugsbakk","fromEmail":"kristofferhaugsbakk@fastmail.com","sentAt":"2025-11-07T14:30:46Z","receivedAt":"2025-11-07T14:31:26Z","isPatch":false,"sender":{"key":"kristofferhaugsbakk@fastmail.com","avatar":null},"body":"On Fri, Nov 7, 2025, at 15:16, Franz Brauße wrote:\n> On Fri, 07 Nov 2025 14:11:52 +0100 \"Kristoffer Haugsbakk\"\n>>[snip]\n>\n> Thank you for the additional infos and the link, I didn't know that! I\n> suppose when it's being removed, I can resurrect the \"whatchanged\"\n> subcommand via the config's alias mechanism (git wh<TAB> is just baked\n> into my fingers at the moment).\n\nYou can set up an alias with that name on Git 2.51.1 and 2.51.2 today.\n(And later Git 2.52.0 (soon to be released).)\n\n    git config set --global alias.whatchanged 'log --raw --no-merges'\n\nYou cannot do that on Git 2.51.0 since you cannot alias builtin\ncommands.  But you can alias deprecated builtin commands on\nthose versions.\n\n> Might I suggest that for future deprecations instead of an annoying to\n> type flag just a message like \"this command is scheduled for removal in\n> v<VERSION>, see <URL>; use \"git log --raw --no-merges\" for similar\n> functionality\"\n\nThis is the current error message on Git 2.51.1 and later:\n\n    $ git whatchanged\n    'git whatchanged' is nominated for removal.\n\n    hint: You can replace 'git whatchanged <opts>' with:\n    hint:   git log <opts> --raw --no-merges\n    hint: Or make an alias:\n    hint:   git config set --global alias.whatchanged 'log --raw --no-merges'\n\n    If you still use this command, here's what you can do:\n\n    - read https://git-scm.com/docs/BreakingChanges.html\n    - check if anyone has discussed this on the mailing\n      list and if they came up with something that can\n      help you: https://lore.kernel.org/git/?q=git%20whatchanged\n    - send an email to <git@vger.kernel.org> to let us\n      know that you still use this command and were unable\n      to determine a suitable replacement\n\n> for future deprecations [...] is printed in addition to the command\n> still working as before while it's there? Similar to how \"git pull\"\n> informs users about the rebase vs. merge options in case of diverged\n> branches?\n\nThe thing about git-whatchanged(1) is that it has been deprecated for\ntwelve years according to the man page. But the man page didn’t\nexplicitly say “deprecated” in 2.51.0 and earlier. But that seems to\nhave been the intent. (Now it says explicitly that in the man page on\n2.51.1 and later.)\n\nThis `--i-still-use-this` thing was only implemented (to the best of my\nknowledge) for commands and functionality that have already been\ndeprecated for a long time. So it will not be used for fresh\ndeprecations.\n\n>\n> Anyhow, thanks again for all your work on this extremely nice tool!\n"}]}