Skip to content

Commit 5a31252

Browse files
LemmingAvalanchegitster
authored andcommitted
whatchanged: hint about git-log(1) and aliasing
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/[email protected]/https://lore.kernel.org/git/[email protected]/#thttps://lore.kernel.org/git/[email protected]/#thttps://lore.kernel.org/git/[email protected]/ [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/[email protected]/ Signed-off-by: Kristoffer Haugsbakk <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 098230f commit 5a31252

File tree

5 files changed

+24
-8
lines changed

5 files changed

+24
-8
lines changed

Documentation/git-whatchanged.adoc

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,11 @@ Shows commit logs and diff output each commit introduces.
2424

2525
New users are encouraged to use linkgit:git-log[1] instead. The
2626
`whatchanged` command is essentially the same as linkgit:git-log[1]
27-
but defaults to showing the raw format diff output and skipping merges.
27+
but defaults to showing the raw format diff output and skipping merges:
28+
29+
----
30+
git log --raw --no-merges
31+
----
2832

2933
The command is primarily kept for historical reasons; fingers of
3034
many people who learned Git long before `git log` was invented by

builtin/log.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -543,7 +543,13 @@ int cmd_whatchanged(int argc,
543543
cmd_log_init(argc, argv, prefix, &rev, &opt, &cfg);
544544

545545
if (!cfg.i_still_use_this)
546-
you_still_use_that("git whatchanged");
546+
you_still_use_that("git whatchanged",
547+
_("\n"
548+
"hint: You can replace 'git whatchanged <opts>' with:\n"
549+
"hint:\tgit log <opts> --raw --no-merges\n"
550+
"hint: Or make an alias:\n"
551+
"hint:\tgit config set --global alias.whatchanged 'log --raw --no-merges'\n"
552+
"\n"));
547553

548554
if (!rev.diffopt.output_format)
549555
rev.diffopt.output_format = DIFF_FORMAT_RAW;

builtin/pack-redundant.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -626,7 +626,7 @@ int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, s
626626
}
627627

628628
if (!i_still_use_this)
629-
you_still_use_that("git pack-redundant");
629+
you_still_use_that("git pack-redundant", NULL);
630630

631631
if (load_all_packs)
632632
load_all();

git-compat-util.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -460,7 +460,7 @@ void warning_errno(const char *err, ...) __attribute__((format (printf, 1, 2)));
460460

461461
void show_usage_if_asked(int ac, const char **av, const char *err);
462462

463-
NORETURN void you_still_use_that(const char *command_name);
463+
NORETURN void you_still_use_that(const char *command_name, const char *hint);
464464

465465
#ifndef NO_OPENSSL
466466
#ifdef APPLE_COMMON_CRYPTO

usage.c

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -376,16 +376,22 @@ void bug_fl(const char *file, int line, const char *fmt, ...)
376376
va_end(ap);
377377
}
378378

379-
NORETURN void you_still_use_that(const char *command_name)
379+
380+
NORETURN void you_still_use_that(const char *command_name, const char *hint)
380381
{
381382
struct strbuf percent_encoded = STRBUF_INIT;
382383
strbuf_add_percentencode(&percent_encoded,
383384
command_name,
384385
STRBUF_ENCODE_SLASH);
385386

386387
fprintf(stderr,
387-
_("'%s' is nominated for removal.\n"
388-
"If you still use this command, here's what you can do:\n"
388+
_("'%s' is nominated for removal.\n"), command_name);
389+
390+
if (hint)
391+
fputs(hint, stderr);
392+
393+
fprintf(stderr,
394+
_("If you still use this command, here's what you can do:\n"
389395
"\n"
390396
"- read https://git-scm.com/docs/BreakingChanges.html\n"
391397
"- check if anyone has discussed this on the mailing\n"
@@ -395,7 +401,7 @@ NORETURN void you_still_use_that(const char *command_name)
395401
" know that you still use this command and were unable\n"
396402
" to determine a suitable replacement\n"
397403
"\n"),
398-
command_name, percent_encoded.buf);
404+
percent_encoded.buf);
399405
strbuf_release(&percent_encoded);
400406
die(_("refusing to run without --i-still-use-this"));
401407
}

0 commit comments

Comments
 (0)