git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: "Philip Oakley via GitGitGadget" <gitgitgadget@gmail.com>
To: git@vger.kernel.org
Cc: "Ævar Arnfjörð Bjarmason" <avarab@gmail.com>,
	"Philip Oakley" <philipoakley@iee.email>,
	"René Scharfe" <l.s.r@web.de>,
	"Philip Oakley" <philipoakley@iee.email>
Subject: [PATCH v2 0/4] Die preserve ggg
Date: Sat, 04 Jun 2022 11:17:45 +0000	[thread overview]
Message-ID: <pull.1242.v2.git.1654341469.gitgitgadget@gmail.com> (raw)
In-Reply-To: <pull.1242.git.1653556865.gitgitgadget@gmail.com>

This [2] short series is a follow up to GitGitGadget "Update the die()
preserve-merges messages to help some users (PR #1155)" [1].

Since v1: Additional patch to translate the user facing die message. Bring
the --abort preclusion to the start of the if && condition for clarity.
Clarify that the pull.rebase config is complementary to this particular
'die'. Updates to the commit messages.

v0: The first patch is a tidy up of the --preserve option to highlight that
it is now Deleted, rather than Deprecated.

In response to Avar's comments that the former error message merely
'tantilised without telling' the user what to do, it became obvious that the
underling problem was that the user was unable to git rebase --abort which
was also fatal, when a preserve-rebase was in progress.

Thus the main update is to allow the rebase --abort command, even when a
--preserve is in progress, to proceed. The --abort code was unchanged by the
removal of the preserve option, as the resetting and clean up of internal
state is common to the other rebase options.

The user facing fatal message now simply advises to abort, or downgrade to a
version that has preserve-merges to complete the rebase.

The final patch highlights that some IDEs still allow the setting of the
preserve-merges option as a pull config setup.

Philip Oakly

[1] GitLore ref pull.1155.git.1645526016.gitgitgadget@gmail.com
https://lore.kernel.org/git/pull.1155.git.1645526016.gitgitgadget@gmail.com/

[2]
https://lore.kernel.org/git/pull.1242.git.1653556865.gitgitgadget@gmail.com/t/#u

Philip Oakley (4):
  rebase.c: state preserve-merges has been removed
  rebase: help users when dying with `preserve-merges`
  rebase: note `preserve` merges may be a pull config option
  rebase: translate a die(preserve-merges) message

 builtin/rebase.c | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)


base-commit: c4f0e309ae745751d08727f24e8ff55e56355755
Published-As: https://github.com/gitgitgadget/git/releases/tag/pr-1242%2FPhilipOakley%2Fdie_preserve_ggg-v2
Fetch-It-Via: git fetch https://github.com/gitgitgadget/git pr-1242/PhilipOakley/die_preserve_ggg-v2
Pull-Request: https://github.com/gitgitgadget/git/pull/1242

Range-diff vs v1:

 1:  0a4c81d8caf ! 1:  d60ec67cb06 rebase.c: state preserve-merges has been removed
     @@ Commit message
          Since feebd2d256 (rebase: hide --preserve-merges option, 2019-10-18)
          this option is now removed as stated in the subsequent release notes.
      
     -    Fix the option tip.
     +    Fix and reflow the option tip.
      
          Signed-off-by: Philip Oakley <philipoakley@iee.email>
      
     @@ builtin/rebase.c: int cmd_rebase(int argc, const char **argv, const char *prefix
       			parse_opt_interactive),
       		OPT_SET_INT_F('p', "preserve-merges", &preserve_merges_selected,
      -			      N_("(DEPRECATED) try to recreate merges instead of "
     -+			      N_("(REMOVED) try to recreate merges instead of "
     - 				 "ignoring them"),
     +-				 "ignoring them"),
     ++			      N_("(REMOVED) was: try to recreate merges "
     ++				 "instead of ignoring them"),
       			      1, PARSE_OPT_HIDDEN),
       		OPT_RERERE_AUTOUPDATE(&options.allow_rerere_autoupdate),
     + 		OPT_CALLBACK_F(0, "empty", &options, "{drop,keep,ask}",
 2:  d0fb5410594 ! 2:  47f27187529 rebase: help users when dying with `preserve-merges`
     @@ Metadata
       ## Commit message ##
          rebase: help users when dying with `preserve-merges`
      
     -    Git will die if a "rebase --preserve-merges" is in progress.
     -    Users cannot --quit, --abort or --continue the rebase.
     +    Git would die if a "rebase --preserve-merges" was in progress.
     +    Users could neither --quit, --abort, nor --continue the rebase.
      
          Make the `rebase --abort` option available to allow users to remove
          traces of any preserve-merges rebase, even if they had upgraded
          during a rebase.
      
     -    One trigger was an unexpectedly difficult to resolve conflict, as
     +    One trigger case was an unexpectedly difficult to resolve conflict, as
          reported on the `git-users` group.
          (https://groups.google.com/g/git-for-windows/c/3jMWbBlXXHM)
      
     -    Tell the user the options to resolve the problem manually.
     +    Other potential use-cases include git-experts using the portable
     +    'Git on a stick' to help users with an older git version.
      
          Signed-off-by: Philip Oakley <philipoakley@iee.email>
      
     @@ builtin/rebase.c: int cmd_rebase(int argc, const char **argv, const char *prefix
       		strbuf_addf(&buf, "%s/rewritten", merge_dir());
      -		if (is_directory(buf.buf)) {
      -			die("`rebase -p` is no longer supported");
     -+		if (is_directory(buf.buf) && !(action == ACTION_ABORT)) {
     ++		if (!(action == ACTION_ABORT) && is_directory(buf.buf)) {
      +			die("`rebase --preserve-merges` (-p) is no longer supported.\n"
      +			"Use `git rebase --abort` to terminate current rebase.\n"
     -+			"Or downgrade to v2.33, or earlier, to complete the rebase.\n");
     ++			"Or downgrade to v2.33, or earlier, to complete the rebase.");
       		} else {
       			strbuf_reset(&buf);
       			strbuf_addf(&buf, "%s/interactive", merge_dir());
 3:  ece3eecdc4d ! 3:  fe000f06207 rebase: note `preserve` merges may be a pull config option
     @@ Metadata
       ## Commit message ##
          rebase: note `preserve` merges may be a pull config option
      
     -    The `--preserve-merges` option was removed by v2.35.0. However
     -    users may not be aware that it is also a Pull option, and it is
     -    still offered by major IDE vendors such as Visual Studio.
     +    The `--preserve-merges` option was removed by v2.34.0. However
     +    users may not be aware that it is also a Pull configuration option,
     +    which is still offered by major IDE vendors such as Visual Studio.
      
          Extend the `--preserve-merges` die message to also direct users to
     -    the use of the `preserve` option in the `pull` config.
     +    the possible use of the `preserve` option in the `pull.rebase` config.
     +    This is an additional 'belt and braces' information statement.
      
          Signed-off-by: Philip Oakley <philipoakley@iee.email>
      
     @@ builtin/rebase.c: int cmd_rebase(int argc, const char **argv, const char *prefix
       	if (preserve_merges_selected)
      -		die(_("--preserve-merges was replaced by --rebase-merges"));
      +		die(_("--preserve-merges was replaced by --rebase-merges\n"
     -+			"Your `pull` configuration, may also invoke this option."));
     ++			"Note: Your `pull.rebase` configuration may also be  set to 'preserve',\n"
     ++			"which is no longer supported; use 'merges' instead"));
       
       	if (action != ACTION_NONE && total_argc != 2) {
       		usage_with_options(builtin_rebase_usage,
 -:  ----------- > 4:  ae02c6d5a6e rebase: translate a die(preserve-merges) message

-- 
gitgitgadget

  parent reply	other threads:[~2022-06-04 11:18 UTC|newest]

Thread overview: 35+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-26  9:21 [PATCH 0/3] Die preserve ggg Philip Oakley via GitGitGadget
2022-05-26  9:21 ` [PATCH 1/3] rebase.c: state preserve-merges has been removed Philip Oakley via GitGitGadget
2022-05-26  9:40   ` Ævar Arnfjörð Bjarmason
2022-05-26 11:40     ` Philip Oakley
2022-05-26 13:02     ` René Scharfe
2022-05-26 20:33       ` Junio C Hamano
2022-05-26 21:27         ` René Scharfe
2022-05-26 23:23           ` Junio C Hamano
2022-05-27 12:35           ` Philip Oakley
2022-05-27 12:17         ` Philip Oakley
2022-05-27 15:45           ` Junio C Hamano
2022-05-27 12:12       ` Philip Oakley
2022-05-27 12:34       ` Ævar Arnfjörð Bjarmason
2022-05-26  9:21 ` [PATCH 2/3] rebase: help users when dying with `preserve-merges` Philip Oakley via GitGitGadget
2022-05-26  9:43   ` Ævar Arnfjörð Bjarmason
2022-05-26 11:44     ` Philip Oakley
2022-05-26 20:42       ` Junio C Hamano
2022-05-27 12:58         ` Philip Oakley
2022-05-27 15:54           ` Junio C Hamano
2022-05-26  9:21 ` [PATCH 3/3] rebase: note `preserve` merges may be a pull config option Philip Oakley via GitGitGadget
2022-05-26  9:50   ` Ævar Arnfjörð Bjarmason
2022-05-26 12:01     ` Philip Oakley
2022-05-26 20:55   ` Junio C Hamano
2022-05-27 12:08     ` Philip Oakley
2022-05-26  9:54 ` [PATCH 0/3] Die preserve ggg Ævar Arnfjörð Bjarmason
2022-05-26 12:57   ` Philip Oakley
2022-06-04 11:17 ` Philip Oakley via GitGitGadget [this message]
2022-06-04 11:17   ` [PATCH v2 1/4] rebase.c: state preserve-merges has been removed Philip Oakley via GitGitGadget
2022-06-04 11:17   ` [PATCH v2 2/4] rebase: help users when dying with `preserve-merges` Philip Oakley via GitGitGadget
2022-06-04 11:17   ` [PATCH v2 3/4] rebase: note `preserve` merges may be a pull config option Philip Oakley via GitGitGadget
2022-06-06 17:57     ` Junio C Hamano
2022-06-11 14:03       ` Philip Oakley
2022-06-11 15:38         ` Philip Oakley
2022-06-11 19:22           ` Junio C Hamano
2022-06-04 11:17   ` [PATCH v2 4/4] rebase: translate a die(preserve-merges) message Philip Oakley via GitGitGadget

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

  List information: http://vger.kernel.org/majordomo-info.html

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

  git send-email \
    --in-reply-to=pull.1242.v2.git.1654341469.gitgitgadget@gmail.com \
    --to=gitgitgadget@gmail.com \
    --cc=avarab@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=l.s.r@web.de \
    --cc=philipoakley@iee.email \
    /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.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

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 read-only IMAP folder(s) and NNTP newsgroup(s).