Re: [PATCH v10 09/10] sequencer.c: save and restore cleanup mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Denton

On 17/04/2019 18:02, Denton Liu wrote:
On Wed, Apr 17, 2019 at 11:23:29AM +0100, Phillip Wood wrote:
From: Denton Liu <liu.denton@xxxxxxxxx>

We should drop this line before applying the patch since Phillip did all
of the hard work for this patch and he's the primary author.


If the user specifies an explicit cleanup mode then save and restore it
so that it is preserved by 'git cherry-pick --continue'.

Sorry when I removed your Signed-off-by: as you suggested I forget to change the authorship of the patch

Best Wishes

Phillip


Signed-off-by: Phillip Wood <phillip.wood@xxxxxxxxxxxxx>
---
  sequencer.c | 28 +++++++++++++++++++++++++++-
  1 file changed, 27 insertions(+), 1 deletion(-)

diff --git a/sequencer.c b/sequencer.c
index b049951c34..3f4b0896e3 100644
--- a/sequencer.c
+++ b/sequencer.c
@@ -535,6 +535,24 @@ enum commit_msg_cleanup_mode get_cleanup_mode(const char *cleanup_arg,
  		die(_("Invalid cleanup mode %s"), cleanup_arg);
  }
+/*
+ * NB using int rather than enum cleanup_mode to stop clang's
+ * -Wtautological-constant-out-of-range-compare complaining that the comparison
+ * is always true.
+ */
+static const char *describe_cleanup_mode(int cleanup_mode)
+{
+	static const char *modes[] = { "whitespace",
+				       "verbatim",
+				       "scissors",
+				       "strip" };
+
+	if (cleanup_mode < ARRAY_SIZE(modes))
+		return modes[cleanup_mode];
+
+	BUG("invalid cleanup_mode provided (%d)", cleanup_mode);
+}
+
  void append_conflicts_hint(struct index_state *istate,
  			   struct strbuf *msgbuf)
  {
@@ -2366,7 +2384,10 @@ static int populate_opts_cb(const char *key, const char *value, void *data)
  		opts->allow_rerere_auto =
  			git_config_bool_or_int(key, value, &error_flag) ?
  				RERERE_AUTOUPDATE : RERERE_NOAUTOUPDATE;
-	else
+	else if (!strcmp(key, "options.default-msg-cleanup")) {
+		opts->explicit_cleanup = 1;
+		opts->default_msg_cleanup = get_cleanup_mode(value, 1);
+	} else
  		return error(_("invalid key: %s"), key);
if (!error_flag)
@@ -2770,6 +2791,11 @@ static int save_opts(struct replay_opts *opts)
  		res |= git_config_set_in_file_gently(opts_file, "options.allow-rerere-auto",
  						     opts->allow_rerere_auto == RERERE_AUTOUPDATE ?
  						     "true" : "false");
+
+	if (opts->explicit_cleanup)
+		res |= git_config_set_in_file_gently(opts_file,
+				"options.default-msg-cleanup",
+				describe_cleanup_mode(opts->default_msg_cleanup));
  	return res;
  }
--
2.21.0




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux