From 4511d56e1a4c09abbe0c6b513fd858072b55cbd8 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 12 May 2025 12:03:06 -0700 Subject: [PATCH 1/6] you-still-use-that??: help deprecating commands for removal Commands slated for removal like "git pack-redundant" now require an explicit "--i-still-use-this" option to run. This is to discourage casual use and surface their pending deprecation to users. The warning message is long, so factor it into a helper function you_still_use_that() to simplify reuse by other commands. Also add a missing test to ensure this enforcement works for "pack-redundant". Helped-by: Elijah Newren [en: log message] Signed-off-by: Junio C Hamano --- builtin/pack-redundant.c | 10 ++-------- git-compat-util.h | 2 ++ t/t5323-pack-redundant.sh | 5 +++++ usage.c | 12 ++++++++++++ 4 files changed, 21 insertions(+), 8 deletions(-) diff --git a/builtin/pack-redundant.c b/builtin/pack-redundant.c index 3febe732f8..6dc9e020c7 100644 --- a/builtin/pack-redundant.c +++ b/builtin/pack-redundant.c @@ -625,14 +625,8 @@ int cmd_pack_redundant(int argc, const char **argv, const char *prefix UNUSED, s break; } - if (!i_still_use_this) { - fputs(_("'git pack-redundant' 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 . Thanks.\n"), stderr); - die(_("refusing to run without --i-still-use-this")); - } + if (!i_still_use_this) + you_still_use_that("git pack-redundant"); if (load_all_packs) load_all(); diff --git a/git-compat-util.h b/git-compat-util.h index e123288e8f..21cab99567 100644 --- a/git-compat-util.h +++ b/git-compat-util.h @@ -703,6 +703,8 @@ 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); + #ifndef NO_OPENSSL #ifdef APPLE_COMMON_CRYPTO #include "compat/apple-common-crypto.h" diff --git a/t/t5323-pack-redundant.sh b/t/t5323-pack-redundant.sh index 688cd9706c..f2f20cfa40 100755 --- a/t/t5323-pack-redundant.sh +++ b/t/t5323-pack-redundant.sh @@ -45,6 +45,11 @@ fi main_repo=main.git shared_repo=shared.git +test_expect_success 'pack-redundant needs --i-still-use-this' ' + test_must_fail git pack-redundant >message 2>&1 && + test_grep "nominated for removal" message +' + git_pack_redundant='git pack-redundant --i-still-use-this' # Create commits in and assign each commit's oid to shell variables diff --git a/usage.c b/usage.c index 38b46bbbfe..4aaad2b553 100644 --- a/usage.c +++ b/usage.c @@ -372,3 +372,15 @@ void bug_fl(const char *file, int line, const char *fmt, ...) trace2_cmd_error_va(fmt, ap); va_end(ap); } + +NORETURN void you_still_use_that(const char *command_name) +{ + 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 . Thanks.\n"), + command_name); + die(_("refusing to run without --i-still-use-this")); +} From ba69a6c66d6b349f730bdb3b9e44c3b49dd53e91 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 12 May 2025 12:03:07 -0700 Subject: [PATCH 2/6] doc: prepare for a world without whatchanged Some documentation examples reference "whatchanged", either as a placeholder command or an example of source structure. To reduce the need for future edits when `whatchanged` is removed, replace these references with alternatives: - In `MyFirstObjectWalk.adoc`, use `version` as the nearby anchor point for `walken`, instead of `whatchanged`. - In `user-manual.adoc`, cite `show` instead of `whatchanged` as a command whose source lives in the same file as `log`. Helped-by: Elijah Newren [en: log message] Signed-off-by: Junio C Hamano --- Documentation/MyFirstObjectWalk.adoc | 4 ++-- Documentation/user-manual.adoc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Documentation/MyFirstObjectWalk.adoc b/Documentation/MyFirstObjectWalk.adoc index d6e9dfdbbe..102a465a48 100644 --- a/Documentation/MyFirstObjectWalk.adoc +++ b/Documentation/MyFirstObjectWalk.adoc @@ -83,13 +83,13 @@ int cmd_walken(int argc, const char **argv, const char *prefix) } ---- -Also add the relevant line in `builtin.h` near `cmd_whatchanged()`: +Also add the relevant line in `builtin.h` near `cmd_version()`: ---- int cmd_walken(int argc, const char **argv, const char *prefix); ---- -Include the command in `git.c` in `commands[]` near the entry for `whatchanged`, +Include the command in `git.c` in `commands[]` near the entry for `version`, maintaining alphabetical ordering: ---- diff --git a/Documentation/user-manual.adoc b/Documentation/user-manual.adoc index d2b478ad23..7124345966 100644 --- a/Documentation/user-manual.adoc +++ b/Documentation/user-manual.adoc @@ -4240,7 +4240,7 @@ command `git`. The source side of a builtin is - an entry in `BUILTIN_OBJECTS` in the `Makefile`. Sometimes, more than one builtin is contained in one source file. For -example, `cmd_whatchanged()` and `cmd_log()` both reside in `builtin/log.c`, +example, `cmd_show()` and `cmd_log()` both reside in `builtin/log.c`, since they share quite a bit of code. In that case, the commands which are _not_ named like the `.c` file in which they live have to be listed in `BUILT_INS` in the `Makefile`. From ab4d1880e19c2229055334f0fe309b89e91f27a9 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 12 May 2025 12:03:08 -0700 Subject: [PATCH 3/6] tests: prepare for a world without whatchanged Some tests on fast-import run "git whatchanged" without even checking the output from the command. It is tempting to remove the calls altogether since they are not doing anything useful, but they presumably were added there while the tests were developed to manually sanity check which paths were touched. Replace these calls with "git log --raw", which is a rough equivalent in the more modern Git. This does not remove "git whatchanged", but we no longer have to worry about adjusting these places when we eventually do. Helped-by: Elijah Newren [en: log message] Signed-off-by: Junio C Hamano --- t/t9300-fast-import.sh | 12 ++++++------ t/t9301-fast-import-notes.sh | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/t/t9300-fast-import.sh b/t/t9300-fast-import.sh index b258dbf1df..4dc3d645bf 100755 --- a/t/t9300-fast-import.sh +++ b/t/t9300-fast-import.sh @@ -120,7 +120,7 @@ test_expect_success 'A: create pack from stdin' ' INPUT_END git fast-import --export-marks=marks.out Date: Mon, 12 May 2025 12:03:09 -0700 Subject: [PATCH 4/6] whatchanged: require --i-still-use-this The documentation of "git whatchanged" is pretty explicit that the command was retained for historical reasons to help those whose fingers cannot be retrained. Let's see if they still are finding it hard to type "git log --raw" instead of "git whatchanged" by marking the command as "nominated for removal", and require "--i-still-use-this" on the command line. Adjust the tests so that the option is passed when we invoke the command. In addition, we test that the command fails when "--i-still-use-this" is not given. Signed-off-by: Junio C Hamano --- builtin/log.c | 13 +++++++++++++ t/t4013-diff-various.sh | 17 +++++++++++++++-- t/t4202-log.sh | 14 +++++++++----- 3 files changed, 37 insertions(+), 7 deletions(-) diff --git a/builtin/log.c b/builtin/log.c index 04a6ef97bc..0f98ac8a34 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -113,6 +113,13 @@ struct log_config { int fmt_patch_name_max; char *fmt_pretty; char *default_date_mode; + + /* + * Note: git_log_config() does not touch this member and that + * is very deliberate. This member is only to be used to + * resurrect whatchanged that is deprecated. + */ + int i_still_use_this; }; static void log_config_init(struct log_config *cfg) @@ -267,6 +274,8 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, OPT__QUIET(&quiet, N_("suppress diff output")), OPT_BOOL(0, "source", &source, N_("show source")), OPT_BOOL(0, "use-mailmap", &mailmap, N_("use mail map file")), + OPT_HIDDEN_BOOL(0, "i-still-use-this", &cfg->i_still_use_this, + ""), OPT_ALIAS(0, "mailmap", "use-mailmap"), OPT_CALLBACK_F(0, "clear-decorations", NULL, NULL, N_("clear all previously-defined decoration filters"), @@ -656,6 +665,10 @@ int cmd_whatchanged(int argc, opt.def = "HEAD"; opt.revarg_opt = REVARG_COMMITTISH; cmd_log_init(argc, argv, prefix, &rev, &opt, &cfg); + + if (!cfg.i_still_use_this) + you_still_use_that("git whatchanged"); + if (!rev.diffopt.output_format) rev.diffopt.output_format = DIFF_FORMAT_RAW; diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 3855d68dbc..8caab2ee38 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -203,11 +203,19 @@ do test_expect_success "git $cmd # magic is ${magic:-(not used)}" ' { echo "$ git $cmd" + + case "$cmd" in + whatchanged | whatchanged" "*) + run="whatchanged --i-still-use-this" + run="$run ${cmd#whatchanged}" ;; + *) + run=$cmd ;; + esac && case "$magic" in "") - GIT_PRINT_SHA1_ELLIPSIS=yes git $cmd ;; + GIT_PRINT_SHA1_ELLIPSIS=yes git $run ;; noellipses) - git $cmd ;; + git $run ;; esac | sed -e "s/^\\(-*\\)$V\\(-*\\)\$/\\1g-i-t--v-e-r-s-i-o-n\2/" \ -e "s/^\\(.*mixed; boundary=\"-*\\)$V\\(-*\\)\"\$/\\1g-i-t--v-e-r-s-i-o-n\2\"/" @@ -454,6 +462,11 @@ diff-tree --stat --compact-summary initial mode diff-tree -R --stat --compact-summary initial mode EOF +test_expect_success 'whatchanged needs --i-still-use-this' ' + test_must_fail git whatchanged >message 2>&1 && + test_grep "nominated for removal" message +' + test_expect_success 'log -m matches pure log' ' git log master >result && process_diffs result >expected && diff --git a/t/t4202-log.sh b/t/t4202-log.sh index 51f7beb59f..ce4c7ab2af 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -490,6 +490,7 @@ for cmd in show whatchanged reflog format-patch do case "$cmd" in format-patch) myarg="HEAD~.." ;; + whatchanged) myarg=--i-still-use-this ;; *) myarg= ;; esac @@ -1202,19 +1203,22 @@ test_expect_success 'reflog is expected format' ' ' test_expect_success 'whatchanged is expected format' ' + whatchanged="whatchanged --i-still-use-this" && git log --no-merges --raw >expect && - git whatchanged >actual && + git $whatchanged >actual && test_cmp expect actual ' test_expect_success 'log.abbrevCommit configuration' ' + whatchanged="whatchanged --i-still-use-this" && + git log --abbrev-commit >expect.log.abbrev && git log --no-abbrev-commit >expect.log.full && git log --pretty=raw >expect.log.raw && git reflog --abbrev-commit >expect.reflog.abbrev && git reflog --no-abbrev-commit >expect.reflog.full && - git whatchanged --abbrev-commit >expect.whatchanged.abbrev && - git whatchanged --no-abbrev-commit >expect.whatchanged.full && + git $whatchanged --abbrev-commit >expect.whatchanged.abbrev && + git $whatchanged --no-abbrev-commit >expect.whatchanged.full && test_config log.abbrevCommit true && @@ -1231,9 +1235,9 @@ test_expect_success 'log.abbrevCommit configuration' ' git reflog --no-abbrev-commit >actual && test_cmp expect.reflog.full actual && - git whatchanged >actual && + git $whatchanged >actual && test_cmp expect.whatchanged.abbrev actual && - git whatchanged --no-abbrev-commit >actual && + git $whatchanged --no-abbrev-commit >actual && test_cmp expect.whatchanged.full actual ' From 07572f220a83770f5b0b9717b29027e016fc99e4 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 12 May 2025 12:03:10 -0700 Subject: [PATCH 5/6] whatchanged: remove when built with WITH_BREAKING_CHANGES As we made "git whatchanged" require "--i-still-use-this" and asked the users to report if they still want to use it, the logical next step is to allow us build Git without "whatchanged" to prepare for its eventual removal. If we were to follow the pattern established in 8ccc75c2 (remote: announce removal of "branches/" and "remotes/", 2025-01-22), we can do this together with the documentation update to officially list that the command will be removed in the BreakingChanges document, but let's just keep the changes separate just in case we want to proceed a bit slower. Signed-off-by: Junio C Hamano --- Documentation/config/format.adoc | 6 +++++ Documentation/config/log.adoc | 11 ++++++-- Documentation/pretty-options.adoc | 5 ++++ Documentation/rev-list-options.adoc | 9 +++++-- Documentation/technical/sparse-checkout.adoc | 2 +- builtin/log.c | 6 +++++ git.c | 2 ++ t/t4013-diff-various.sh | 12 +++++++-- t/t4202-log.sh | 28 ++++++++++++++------ 9 files changed, 66 insertions(+), 15 deletions(-) diff --git a/Documentation/config/format.adoc b/Documentation/config/format.adoc index 7410e930e5..ab0710e86a 100644 --- a/Documentation/config/format.adoc +++ b/Documentation/config/format.adoc @@ -68,9 +68,15 @@ format.encodeEmailHeaders:: Defaults to true. format.pretty:: +ifndef::with-breaking-changes[] The default pretty format for log/show/whatchanged command. See linkgit:git-log[1], linkgit:git-show[1], linkgit:git-whatchanged[1]. +endif::with-breaking-changes[] +ifdef::with-breaking-changes[] + The default pretty format for log/show command. + See linkgit:git-log[1], linkgit:git-show[1]. +endif::with-breaking-changes[] format.thread:: The default threading style for 'git format-patch'. Can be diff --git a/Documentation/config/log.adoc b/Documentation/config/log.adoc index 9003a82191..a9b160e7de 100644 --- a/Documentation/config/log.adoc +++ b/Documentation/config/log.adoc @@ -1,6 +1,13 @@ log.abbrevCommit:: - If true, makes linkgit:git-log[1], linkgit:git-show[1], and - linkgit:git-whatchanged[1] assume `--abbrev-commit`. You may + If true, makes +ifndef::with-breaking-changes[] + linkgit:git-log[1], linkgit:git-show[1], and + linkgit:git-whatchanged[1] +endif::with-breaking-changes[] +ifdef::with-breaking-changes[] + linkgit:git-log[1] and linkgit:git-show[1] +endif::with-breaking-changes[] + assume `--abbrev-commit`. You may override this option with `--no-abbrev-commit`. log.date:: diff --git a/Documentation/pretty-options.adoc b/Documentation/pretty-options.adoc index 23888cd612..b36e96abe2 100644 --- a/Documentation/pretty-options.adoc +++ b/Documentation/pretty-options.adoc @@ -62,7 +62,12 @@ ifndef::git-rev-list[] --notes[=]:: Show the notes (see linkgit:git-notes[1]) that annotate the commit, when showing the commit log message. This is the default +ifndef::with-breaking-changes[] for `git log`, `git show` and `git whatchanged` commands when +endif::with-breaking-changes[] +ifdef::with-breaking-changes[] + for `git log` and `git show` commands when +endif::with-breaking-changes[] there is no `--pretty`, `--format`, or `--oneline` option given on the command line. + diff --git a/Documentation/rev-list-options.adoc b/Documentation/rev-list-options.adoc index 785c0786e0..ee5c5c9489 100644 --- a/Documentation/rev-list-options.adoc +++ b/Documentation/rev-list-options.adoc @@ -1074,8 +1074,13 @@ Commit Formatting ifdef::git-rev-list[] Using these options, linkgit:git-rev-list[1] will act similar to the -more specialized family of commit log tools: linkgit:git-log[1], -linkgit:git-show[1], and linkgit:git-whatchanged[1] +more specialized family of commit log tools: +ifndef::with-breaking-changes[] +linkgit:git-log[1], linkgit:git-show[1], and linkgit:git-whatchanged[1]. +endif::with-breaking-changes[] +ifdef::with-breaking-changes[] +linkgit:git-log[1] and linkgit:git-show[1]. +endif::with-breaking-changes[] endif::git-rev-list[] include::pretty-options.adoc[] diff --git a/Documentation/technical/sparse-checkout.adoc b/Documentation/technical/sparse-checkout.adoc index d968659354..67134bb768 100644 --- a/Documentation/technical/sparse-checkout.adoc +++ b/Documentation/technical/sparse-checkout.adoc @@ -442,7 +442,7 @@ understanding these differences can be beneficial. * blame (only matters when one or more -C flags are passed) * and annotate * log - * whatchanged + * whatchanged (may not exist anymore) * ls-files * diff-index * diff-tree diff --git a/builtin/log.c b/builtin/log.c index 0f98ac8a34..1d0ae645ab 100644 --- a/builtin/log.c +++ b/builtin/log.c @@ -114,12 +114,14 @@ struct log_config { char *fmt_pretty; char *default_date_mode; +#ifndef WITH_BREAKING_CHANGES /* * Note: git_log_config() does not touch this member and that * is very deliberate. This member is only to be used to * resurrect whatchanged that is deprecated. */ int i_still_use_this; +#endif }; static void log_config_init(struct log_config *cfg) @@ -274,8 +276,10 @@ static void cmd_log_init_finish(int argc, const char **argv, const char *prefix, OPT__QUIET(&quiet, N_("suppress diff output")), OPT_BOOL(0, "source", &source, N_("show source")), OPT_BOOL(0, "use-mailmap", &mailmap, N_("use mail map file")), +#ifndef WITH_BREAKING_CHANGES OPT_HIDDEN_BOOL(0, "i-still-use-this", &cfg->i_still_use_this, ""), +#endif OPT_ALIAS(0, "mailmap", "use-mailmap"), OPT_CALLBACK_F(0, "clear-decorations", NULL, NULL, N_("clear all previously-defined decoration filters"), @@ -642,6 +646,7 @@ static int git_log_config(const char *var, const char *value, return git_diff_ui_config(var, value, ctx, cb); } +#ifndef WITH_BREAKING_CHANGES int cmd_whatchanged(int argc, const char **argv, const char *prefix, @@ -678,6 +683,7 @@ int cmd_whatchanged(int argc, log_config_release(&cfg); return ret; } +#endif static void show_tagger(const char *buf, struct rev_info *rev) { diff --git a/git.c b/git.c index 450d6aaa86..b84db92cb5 100644 --- a/git.c +++ b/git.c @@ -645,7 +645,9 @@ static struct cmd_struct commands[] = { { "verify-pack", cmd_verify_pack }, { "verify-tag", cmd_verify_tag, RUN_SETUP }, { "version", cmd_version }, +#ifndef WITH_BREAKING_CHANGES { "whatchanged", cmd_whatchanged, RUN_SETUP }, +#endif { "worktree", cmd_worktree, RUN_SETUP }, { "write-tree", cmd_write_tree, RUN_SETUP }, }; diff --git a/t/t4013-diff-various.sh b/t/t4013-diff-various.sh index 8caab2ee38..8e38df1685 100755 --- a/t/t4013-diff-various.sh +++ b/t/t4013-diff-various.sh @@ -200,7 +200,15 @@ do expect="$TEST_DIRECTORY/t4013/diff.$test" actual="$pfx-diff.$test" - test_expect_success "git $cmd # magic is ${magic:-(not used)}" ' + case "$cmd" in + whatchanged | whatchanged" "*) + prereq=WITHOUT_BREAKING_CHANGES + ;; + *) + prereq=;; + esac + + test_expect_success $prereq "git $cmd # magic is ${magic:-(not used)}" ' { echo "$ git $cmd" @@ -462,7 +470,7 @@ diff-tree --stat --compact-summary initial mode diff-tree -R --stat --compact-summary initial mode EOF -test_expect_success 'whatchanged needs --i-still-use-this' ' +test_expect_success WITHOUT_BREAKING_CHANGES 'whatchanged needs --i-still-use-this' ' test_must_fail git whatchanged >message 2>&1 && test_grep "nominated for removal" message ' diff --git a/t/t4202-log.sh b/t/t4202-log.sh index ce4c7ab2af..ad05f6772f 100755 --- a/t/t4202-log.sh +++ b/t/t4202-log.sh @@ -486,7 +486,12 @@ test_expect_success !FAIL_PREREQS 'log with various grep.patternType configurati ) ' -for cmd in show whatchanged reflog format-patch +cmds="show reflog format-patch" +if test_have_prereq WITHOUT_BREAKING_CHANGES +then + cmds="$cmds whatchanged" +fi +for cmd in $cmds do case "$cmd" in format-patch) myarg="HEAD~.." ;; @@ -1202,7 +1207,7 @@ test_expect_success 'reflog is expected format' ' test_cmp expect actual ' -test_expect_success 'whatchanged is expected format' ' +test_expect_success WITHOUT_BREAKING_CHANGES 'whatchanged is expected format' ' whatchanged="whatchanged --i-still-use-this" && git log --no-merges --raw >expect && git $whatchanged >actual && @@ -1217,8 +1222,12 @@ test_expect_success 'log.abbrevCommit configuration' ' git log --pretty=raw >expect.log.raw && git reflog --abbrev-commit >expect.reflog.abbrev && git reflog --no-abbrev-commit >expect.reflog.full && - git $whatchanged --abbrev-commit >expect.whatchanged.abbrev && - git $whatchanged --no-abbrev-commit >expect.whatchanged.full && + + if test_have_prereq WITHOUT_BREAKING_CHANGES + then + git $whatchanged --abbrev-commit >expect.whatchanged.abbrev && + git $whatchanged --no-abbrev-commit >expect.whatchanged.full + fi && test_config log.abbrevCommit true && @@ -1235,10 +1244,13 @@ test_expect_success 'log.abbrevCommit configuration' ' git reflog --no-abbrev-commit >actual && test_cmp expect.reflog.full actual && - git $whatchanged >actual && - test_cmp expect.whatchanged.abbrev actual && - git $whatchanged --no-abbrev-commit >actual && - test_cmp expect.whatchanged.full actual + if test_have_prereq WITHOUT_BREAKING_CHANGES + then + git $whatchanged >actual && + test_cmp expect.whatchanged.abbrev actual && + git $whatchanged --no-abbrev-commit >actual && + test_cmp expect.whatchanged.full actual + fi ' test_expect_success '--abbrev-commit with core.abbrev=false' ' From e836757e14bf4fd617828d834d29e679e1f527c0 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Mon, 12 May 2025 12:03:11 -0700 Subject: [PATCH 6/6] whatschanged: list it in BreakingChanges document This can be squashed into the previous step. That is how our "git pack-redundant" conversion did. Theoretically, however, those who want to gauge the need to keep the command by exposing their users to patches before this one may want to wait until their experiment finishes before they formally say "this will go away". This change is made into a separate patch from the previous step precisely to help those folks. While at it, update the documentation page to use the new [synopsis] facility to mark-up the SYNOPSIS part. Helped-by: Elijah Newren [en: typofix] Signed-off-by: Junio C Hamano --- Documentation/BreakingChanges.adoc | 9 +++++++++ Documentation/git-whatchanged.adoc | 10 ++++++++-- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/Documentation/BreakingChanges.adoc b/Documentation/BreakingChanges.adoc index bdfad29d8a..ac9a84c17b 100644 --- a/Documentation/BreakingChanges.adoc +++ b/Documentation/BreakingChanges.adoc @@ -178,6 +178,15 @@ references. + These features will be removed. +* The git-whatchanged(1) command has outlived its usefulness more than + 10 years ago, and takes more keystrokes to type than its rough + equivalent `git log --raw`. We have nominated the command for + removal, have changed the command to refuse to work unless the + `--i-still-use-this` option is given, and asked the users to report + when they do so. So far there hasn't been a single complaint. ++ +The command will be removed. + == Superseded features that will not be deprecated Some features have gained newer replacements that aim to improve the design in diff --git a/Documentation/git-whatchanged.adoc b/Documentation/git-whatchanged.adoc index 8e55e0bb1e..d21484026f 100644 --- a/Documentation/git-whatchanged.adoc +++ b/Documentation/git-whatchanged.adoc @@ -8,8 +8,14 @@ git-whatchanged - Show logs with differences each commit introduces SYNOPSIS -------- -[verse] -'git whatchanged'