git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: kristofferhaugsbakk@fastmail.com
To: Junio C Hamano <gitster@pobox.com>
Cc: Kristoffer Haugsbakk <code@khaugsbakk.name>,
	git@vger.kernel.org, Eric Sunshine <sunshine@sunshineco.com>,
	peff@peff.net, Patrick Steinhardt <ps@pks.im>
Subject: [PATCH v6 7/9] whatchanged: hint about git-log(1) and aliasing
Date: Wed, 17 Sep 2025 22:24:17 +0200	[thread overview]
Message-ID: <b0831.1758139856.short.code@khaugsbakk.name> (raw)
In-Reply-To: <cover.1758139856.short.code@khaugsbakk.name>

From: Kristoffer Haugsbakk <code@khaugsbakk.name>

There have been quite a few `--i-still-use-this` user reports since Git
2.51.0 was released.[1][2]  And it doesn’t seem like they are reading
the man page about the git-log(1) equivalent.

Tell them what options to plug into git-log(1), either as a replacement
command or as an alias.[3]  That template produces almost the same
output[4] and is arguably a plug-in replacement.  Concretely, add
an optional `hint` argument so that we can use it right after the
initial error line.

Also mention the same concrete options in the documentation while we’re
at it.

[1]: E.g.,
    • https://lore.kernel.org/git/e1a69dea-bcb6-45fc-83d3-9e50d32c410b@5y5.one/https://lore.kernel.org/git/1011073f-9930-4360-a42f-71eb7421fe3f@chrispalmer.uk/#thttps://lore.kernel.org/git/9fcbfcc4-79f9-421f-b9a4-dc455f7db485@acm.org/#thttps://lore.kernel.org/git/83241BDE-1E0D-489A-9181-C608E9FCC17B@gmail.com/
[2]: The error message on 2.51.0 does tell them to report it, unconditionally
[3]: We allow aliasing deprecated builtins now for people who are very
    used to the command name or just like it a lot
[4]: You only get different outputs if you happen to have empty
     commits (no changes)[4]
[5]: https://lore.kernel.org/git/20250825085428.GA367101@coredump.intra.peff.net/

Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
---

Notes (series):
    v5:
    
    Mention the aliasing hint in the commit message.
    
    v3:
    
    Add an alias hint now that that is possible.  Also prefix each hint-line
    with `hint: `.
    
    v2:
    
    Review found a whitespace error in the prev. patch version.  I found a
    broken footnote and wanted to expand on the last footnote.
    
    • Fix whitespace error (I should have used `ci/check-whitespace.sh
      v2.51.0`)
    • Add missing colon (:) to footnote
    • Expand on footnote; a sentence is enough to summarize the difference

 Documentation/git-whatchanged.adoc |  6 +++++-
 builtin/log.c                      |  8 +++++++-
 builtin/pack-redundant.c           |  2 +-
 git-compat-util.h                  |  2 +-
 usage.c                            | 14 ++++++++++----
 5 files changed, 24 insertions(+), 8 deletions(-)

diff --git a/Documentation/git-whatchanged.adoc b/Documentation/git-whatchanged.adoc
index d21484026fe..e71d2aa2d27 100644
--- a/Documentation/git-whatchanged.adoc
+++ b/Documentation/git-whatchanged.adoc
@@ -24,7 +24,11 @@ Shows commit logs and diff output each commit introduces.
 
 New users are encouraged to use linkgit:git-log[1] instead.  The
 `whatchanged` command is essentially the same as linkgit:git-log[1]
-but defaults to showing the raw format diff output and skipping merges.
+but defaults to showing the raw format diff output and skipping merges:
+
+----
+git log --raw --no-merges
+----
 
 The command is primarily kept for historical reasons; fingers of
 many people who learned Git long before `git log` was invented by
diff --git a/builtin/log.c b/builtin/log.c
index c2f8bbf8630..1d1e6e9130a 100644
--- a/builtin/log.c
+++ b/builtin/log.c
@@ -543,7 +543,13 @@ int cmd_whatchanged(int argc,
 	cmd_log_init(argc, argv, prefix, &rev, &opt, &cfg);
 
 	if (!cfg.i_still_use_this)
-		you_still_use_that("git whatchanged");
+		you_still_use_that("git whatchanged",
+				   _("\n"
+				     "hint: You can replace 'git whatchanged <opts>' with:\n"
+				     "hint:\tgit log <opts> --raw --no-merges\n"
+				     "hint: Or make an alias:\n"
+				     "hint:\tgit config set --global alias.whatchanged 'log --raw --no-merges'\n"
+				     "\n"));
 
 	if (!rev.diffopt.output_format)
 		rev.diffopt.output_format = DIFF_FORMAT_RAW;
diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c
index fe81c293e3a..5d5ae4afa28 100644
--- a/builtin/pack-redundant.c
+++ b/builtin/pack-redundant.c
@@ -626,7 +626,7 @@ int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, s
 	}
 
 	if (!i_still_use_this)
-		you_still_use_that("git pack-redundant");
+		you_still_use_that("git pack-redundant", NULL);
 
 	if (load_all_packs)
 		load_all();
diff --git a/git-compat-util.h b/git-compat-util.h
index 9408f463e31..398e0fac4fa 100644
--- a/git-compat-util.h
+++ b/git-compat-util.h
@@ -460,7 +460,7 @@ void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
 
 void show_usage_if_asked(int ac, const char **av, const char *err);
 
-NORETURN void you_still_use_that(const char *command_name);
+NORETURN void you_still_use_that(const char *command_name, const char *hint);
 
 #ifndef NO_OPENSSL
 #ifdef APPLE_COMMON_CRYPTO
diff --git a/usage.c b/usage.c
index 35dc57eb07e..7545a616453 100644
--- a/usage.c
+++ b/usage.c
@@ -376,7 +376,8 @@ void bug_fl(const char *file, int line, const char *fmt, ...)
 	va_end(ap);
 }
 
-NORETURN void you_still_use_that(const char *command_name)
+
+NORETURN void you_still_use_that(const char *command_name, const char *hint)
 {
 	struct strbuf percent_encoded = STRBUF_INIT;
 	strbuf_add_percentencode(&percent_encoded,
@@ -384,8 +385,13 @@ NORETURN void you_still_use_that(const char *command_name)
 				 STRBUF_ENCODE_SLASH);
 
 	fprintf(stderr,
-		_("'%s' is nominated for removal.\n"
-		  "If you still use this command, here's what you can do:\n"
+		_("'%s' is nominated for removal.\n"), command_name);
+
+	if (hint)
+		fputs(hint, stderr);
+
+	fprintf(stderr,
+		_("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"
@@ -395,7 +401,7 @@ NORETURN void you_still_use_that(const char *command_name)
 		  "  know that you still use this command and were unable\n"
 		  "  to determine a suitable replacement\n"
 		  "\n"),
-		command_name, percent_encoded.buf);
+		percent_encoded.buf);
 	strbuf_release(&percent_encoded);
 	die(_("refusing to run without --i-still-use-this"));
 }
-- 
2.51.0.274.gdcb64e51a0f


  parent reply	other threads:[~2025-09-17 20:27 UTC|newest]

Thread overview: 102+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-08-27 16:29 [PATCH 0/4] you-still-use-that??: improve breaking changes troubleshooting kristofferhaugsbakk
2025-08-27 16:29 ` [PATCH 1/4] usage: help the user help themselves kristofferhaugsbakk
2025-08-27 20:36   ` Kristoffer Haugsbakk
2025-08-27 21:02     ` Eric Sunshine
2025-08-27 21:20       ` Junio C Hamano
2025-08-27 21:27         ` Eric Sunshine
2025-08-27 22:26           ` Junio C Hamano
2025-08-28  6:39             ` Kristoffer Haugsbakk
2025-08-28 15:09               ` Junio C Hamano
2025-09-03 16:50           ` Eric Sunshine
2025-09-03 17:53             ` Kristoffer Haugsbakk
2025-09-03 21:21               ` Eric Sunshine
2025-09-03 21:41                 ` Kristoffer Haugsbakk
2025-09-03 21:44                 ` Jeff King
2025-09-03 22:11                   ` Eric Sunshine
2025-09-04  6:57                     ` Kristoffer Haugsbakk
2025-09-05 13:11                     ` Jeff King
2025-09-09 20:01             ` Kristoffer Haugsbakk
2025-08-27 21:14     ` Junio C Hamano
2025-08-27 16:29 ` [PATCH 2/4] whatchanged: tell users the git-log(1) equivalent kristofferhaugsbakk
2025-08-27 16:45   ` Junio C Hamano
2025-08-27 16:48     ` Junio C Hamano
2025-08-27 17:08       ` Kristoffer Haugsbakk
2025-08-28 12:07   ` Kristoffer Haugsbakk
2025-08-27 16:29 ` [PATCH 3/4] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-08-27 16:29 ` [PATCH 4/4] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-08-27 16:43 ` [PATCH 0/4] you-still-use-that??: improve breaking changes troubleshooting Junio C Hamano
2025-08-29 15:21 ` [PATCH v2 " kristofferhaugsbakk
2025-08-29 15:21   ` [PATCH v2 1/4] you-still-use-that??: help the user help themselves kristofferhaugsbakk
2025-08-29 15:21   ` [PATCH v2 2/4] whatchanged: tell users the git-log(1) equivalent kristofferhaugsbakk
2025-08-29 15:21   ` [PATCH v2 3/4] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-08-29 15:21   ` [PATCH v2 4/4] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-09-08 15:36   ` [PATCH v3 0/8] you-still-use-that??: improve breaking changes troubleshooting kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 1/8] git: add `deprecated` category to --list-cmds kristofferhaugsbakk
2025-09-09  6:43       ` Patrick Steinhardt
2025-09-09  8:02         ` Kristoffer Haugsbakk
2025-09-08 15:36     ` [PATCH v3 2/8] git: make the two loops look more symmetric kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 3/8] git: allow alias-shadowing deprecated builtins kristofferhaugsbakk
2025-09-08 20:47       ` Junio C Hamano
2025-09-08 21:11         ` Jeff King
2025-09-08 21:55           ` Junio C Hamano
2025-09-09  6:25             ` Kristoffer Haugsbakk
2025-09-08 15:36     ` [PATCH v3 4/8] t0014: test shadowing of aliases for a sample of builtins kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 5/8] you-still-use-that??: help the user help themselves kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 6/8] whatchanged: tell users the git-log(1) equivalent kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 7/8] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-09-08 15:36     ` [PATCH v3 8/8] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-09-09 19:45     ` [PATCH v4 0/7] you-still-use-that??: improve breaking changes troubleshooting kristofferhaugsbakk
2025-09-09 19:45       ` [PATCH v4 1/7] git: add `deprecated` category to --list-cmds kristofferhaugsbakk
2025-09-09 21:44         ` Junio C Hamano
2025-09-10 11:41           ` Patrick Steinhardt
2025-09-10 15:50           ` Jeff King
2025-09-10 21:40             ` Junio C Hamano
2025-09-10 20:23           ` Kristoffer Haugsbakk
2025-09-09 19:45       ` [PATCH v4 2/7] git: allow alias-shadowing deprecated builtins kristofferhaugsbakk
2025-09-10  5:13         ` Jeff King
2025-09-10 15:48           ` Jeff King
2025-09-10 17:58             ` Kristoffer Haugsbakk
2025-09-10 18:34               ` Jeff King
2025-09-11 17:31                 ` Kristoffer Haugsbakk
2025-09-11 20:32                   ` Jeff King
2025-09-11 20:43                     ` Jeff King
2025-09-13 14:10                       ` Kristoffer Haugsbakk
2025-09-13 22:06                         ` Jeff King
2025-09-14 17:24                           ` Kristoffer Haugsbakk
2025-09-15  1:44                             ` Jeff King
2025-09-15  6:27                               ` Kristoffer Haugsbakk
2025-09-11 20:44                     ` Jeff King
2025-09-11 21:19                       ` Junio C Hamano
2025-09-13 21:50                 ` Kristoffer Haugsbakk
2025-09-09 19:45       ` [PATCH v4 3/7] t0014: test shadowing of aliases for a sample of builtins kristofferhaugsbakk
2025-09-09 19:45       ` [PATCH v4 4/7] you-still-use-that??: help the user help themselves kristofferhaugsbakk
2025-09-09 19:45       ` [PATCH v4 5/7] whatchanged: tell users the git-log(1) equivalent kristofferhaugsbakk
2025-09-09 19:45       ` [PATCH v4 6/7] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-09-09 19:45       ` [PATCH v4 7/7] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-09-14 19:49       ` [PATCH v5 0/8] you-still-use-that??: improve breaking changes troubleshooting kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 1/8] git: add `deprecated` category to --list-cmds kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 2/8] git: move seen-alias bookkeeping into handle_alias(...) kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 3/8] git: allow alias-shadowing deprecated builtins kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 4/8] t0014: test shadowing of aliases for a sample of builtins kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 5/8] you-still-use-that??: help the user help themselves kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 6/8] whatchanged: hint about git-log(1) and aliasing kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 7/8] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-09-14 19:49         ` [PATCH v5 8/8] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-09-15 19:19         ` [PATCH v5 0/8] you-still-use-that??: improve breaking changes troubleshooting Junio C Hamano
2025-09-16 20:47           ` Kristoffer Haugsbakk
2025-09-16 23:24             ` Jeff King
2025-09-17 15:41               ` Kristoffer Haugsbakk
2025-09-17 16:25                 ` Junio C Hamano
2025-09-17 20:24         ` [PATCH v6 0/9] " kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 1/9] Makefile: don’t add whatchanged after it has been removed kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 2/9] git: add `deprecated` category to --list-cmds kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 3/9] git: move seen-alias bookkeeping into handle_alias(...) kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 4/9] git: allow alias-shadowing deprecated builtins kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 5/9] t0014: test shadowing of aliases for a sample of builtins kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 6/9] you-still-use-that??: help the user help themselves kristofferhaugsbakk
2025-09-17 20:24           ` kristofferhaugsbakk [this message]
2025-09-17 20:24           ` [PATCH v6 8/9] whatchanged: remove not-even-shorter clause kristofferhaugsbakk
2025-09-17 20:24           ` [PATCH v6 9/9] BreakingChanges: remove claim about whatchanged reports kristofferhaugsbakk
2025-09-18 18:31           ` [PATCH v6 0/9] you-still-use-that??: improve breaking changes troubleshooting Jeff King
2025-09-18 20:21             ` Junio C Hamano
2025-09-18 20:28             ` Kristoffer Haugsbakk

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=b0831.1758139856.short.code@khaugsbakk.name \
    --to=kristofferhaugsbakk@fastmail.com \
    --cc=code@khaugsbakk.name \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    --cc=ps@pks.im \
    --cc=sunshine@sunshineco.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).