On Mon, May 12, 2025 at 12:04 PM Junio C Hamano <gitster@xxxxxxxxx> wrote: > > "git whatchanged" has outlived its usefulness when "git log" with > various diff-related options more than 10 years ago. It is not even > shorter to type than its rough equivalent "git log --raw". It is > high time to start seeing if it is still being used, declare its > official deprecation, and announce its removal in the future. > > This iteration is more complete than the previous two iterations: > > * The first step is to refactor the mechanism to show the message > to ask users to contact git@vger that they still use the command, > out of "git pack-redundant" implementation. This message is > shown when the "--i-still-use-this" option is not passed to a > command that requires it. > > * The second and the third step are to remove unnecessary mentions > of "whatchanged" from our documentation and tests. With these, > we have fewer places that we need to adjust when the command gets > truly removed. > > * Then we start to require that the "--i-still-use-this" option is > passed from the command line. This requires adjustment for tests > that protect the behaviour of the command, as they must now pass > the required option just like end-users. > > * The last two steps are for a future. In order to make sure that > we can cleanly ditch the feature at some future date by removing > it from the build, test, and documentation when Git is built with > WITH_BREAKING_CHANGES. And finally we add "whatchanged" to the > list of features to be removed in the BreakingChanges document. > > This iteration incorporates updated log messages, and a missing > period in the documentation, helped by Elijah. > > > Junio C Hamano (6): > you-still-use-that??: help deprecating commands for removal > doc: prepare for a world without whatchanged > tests: prepare for a world without whatchanged > whatchanged: require --i-still-use-this > whatchanged: remove when built with WITH_BREAKING_CHANGES > whatschanged: list it in BreakingChanges document > > Documentation/BreakingChanges.adoc | 9 ++++++ > Documentation/MyFirstObjectWalk.adoc | 4 +-- > Documentation/config/format.adoc | 6 ++++ > Documentation/config/log.adoc | 11 +++++-- > Documentation/git-whatchanged.adoc | 10 ++++-- > Documentation/pretty-options.adoc | 5 +++ > Documentation/rev-list-options.adoc | 9 ++++-- > Documentation/technical/sparse-checkout.adoc | 2 +- > Documentation/user-manual.adoc | 2 +- > builtin/log.c | 19 +++++++++++ > builtin/pack-redundant.c | 10 ++---- > git-compat-util.h | 2 ++ > git.c | 2 ++ > t/t4013-diff-various.sh | 27 ++++++++++++++-- > t/t4202-log.sh | 34 ++++++++++++++------ > t/t5323-pack-redundant.sh | 5 +++ > t/t9300-fast-import.sh | 12 +++---- > t/t9301-fast-import-notes.sh | 2 +- > usage.c | 12 +++++++ > 19 files changed, 146 insertions(+), 37 deletions(-) > > Range-diff against v3: The updates to patches 1-3 and patch 6 all look good, but... > 4: 2775f628c3 = 4: 01d4ed9acd whatchanged: require --i-still-use-this > 5: b3d4d1f46a = 5: a7aca55d5d whatchanged: remove when built with WITH_BREAKING_CHANGES ...I was surprised to see no changes to either patches 4 or 5. While I didn't comment on those patches myself, Patrick did (and since he already called out the missing word I also noticed, I just didn't call it out again).