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 6/9] you-still-use-that??: help the user help themselves
Date: Wed, 17 Sep 2025 22:24:16 +0200	[thread overview]
Message-ID: <74998.1758139856.short.code@khaugsbakk.name> (raw)
In-Reply-To: <cover.1758139856.short.code@khaugsbakk.name>

From: Kristoffer Haugsbakk <code@khaugsbakk.name>

Give the user a list of suggestions for what to do when they run a
deprecated command.

The first order of action will be to check the breaking changes
document;[1] this short error message says nothing about why this
command is deprecated, and in any case going into any kind of detail
might overwhelm the user.

Then they can find out if this has been discussed on the mailing list.
Then users who e.g. are using git-whatchanged(1) can learn that this is
arguably a plug-in replacement:

    git log <opts> --raw --no-merges

Finally they are invited to send an email to the mailing list.

Also drop the “please add” part in favor of just using the “refusing”
die-message; these two would have been right after each other in this
new version.

Also drop “Thanks” since it now would require a new paragraph.

[1]: www.git-scm.com has a disclaimer for these internal documents that
    says that “This information is specific to the Git project”.  That’s
    misleading in this particular case.  But users are unlikely to get
    discouraged from reading about why they (or their programs) cannot run a
    command any more; it clearly concerns them.

Helped-by: Eric Sunshine <sunshine@sunshineco.com>
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
---

Notes (series):
    v2:
    
    I had second thoughts about the bullet point about send-an-email.
    Change it to the one Eric Sunshine proposed;[1] make sure to spell
    out that you can send an email conditioned on not finding a suitable
    replacement.
    
    Also change the area to something more pointed.
    
    And also use a clear URL to refer to www.git-scm.com.
    
    [1]: https://lore.kernel.org/git/CAPig+cQkVP57n_FE6dJ0uxvai-J7usxKFp8gzfEbPY=Ytsd6=Q@mail.gmail.com/
    
    • Change send-an-email bullet point
    • Change the area
    • Use www.git-scm.com, not simply git-scm
    
    v1:
    
    An alternative to linking to www.git-scm.com is to move this document to
    a regular installed man page:
    
        gitbreaking-changes(7)
    
    What do you think?
    
    I would then have to base my topic on the in-flight
    pw/3.0-commentchar-auto-deprecation, which in turn depends on
    ps/config-wo-the-repository.
    
    Or just wait a bit for these to settle in.

 usage.c | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/usage.c b/usage.c
index 81913236a4a..35dc57eb07e 100644
--- a/usage.c
+++ b/usage.c
@@ -7,6 +7,7 @@
 #include "git-compat-util.h"
 #include "gettext.h"
 #include "trace2.h"
+#include "strbuf.h"
 
 static void vfreportf(FILE *f, const char *prefix, const char *err, va_list params)
 {
@@ -377,12 +378,24 @@ void bug_fl(const char *file, int line, const char *fmt, ...)
 
 NORETURN void you_still_use_that(const char *command_name)
 {
+	struct strbuf percent_encoded = STRBUF_INIT;
+	strbuf_add_percentencode(&percent_encoded,
+				 command_name,
+				 STRBUF_ENCODE_SLASH);
+
 	fprintf(stderr,
 		_("'%s' is nominated for removal.\n"
-		  "If you still use this command, please add an extra\n"
-		  "option, '--i-still-use-this', on the command line\n"
-		  "and let us know you still use it by sending an e-mail\n"
-		  "to <git@vger.kernel.org>.  Thanks.\n"),
-		command_name);
+		  "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=%s\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"),
+		command_name, 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           ` kristofferhaugsbakk [this message]
2025-09-17 20:24           ` [PATCH v6 7/9] whatchanged: hint about git-log(1) and aliasing kristofferhaugsbakk
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=74998.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).