git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 6/6] cherry-pick/revert: reject --rerere-autoupdate when continuing

From
PWPhillip Wood <phillip.wood@talktalk.net>
Date
Aug 2, 2017, 10:44 UTC
Message-ID
<20170802104420.12809-7-phillip.wood@talktalk.net>
In-Reply-To
<20170802104420.12809-1-phillip.wood@talktalk.net>
From: Phillip Wood <phillip.wood@dunelm.org.uk>

cherry-pick and revert should not accept --[no-]rerere-autoupdate once they have started.

Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
---

This will break scripts that pass --[no-]rerere-autoupdate to 'git cherry-pick --continue'. I don't think that this will be an issue for the vast majority of users as I think most people will have assumed that you cannot pass any other options with '--continue'. '--rerere-autoupdate' is mentioned by 'git cherry-pick -h' but it is not mentioned in the documentation. Hopefully a note in the release notes should be enough to alert anyone who is affected by this.

builtin/revert.c              |  2 ++
 t/t3504-cherry-pick-rerere.sh | 13 +++++++++++++
 2 files changed, 15 insertions(+)
diff --git a/builtin/revert.c b/builtin/revert.c
index 16028b9ea82edee9cf41044c69a47e8994d78fc6..b9d927eb09c9ed87c84681df1396f4e6d9b13c97 100644
--- a/builtin/revert.c
+++ b/builtin/revert.c
@@ -155,6 +155,8 @@ static int run_sequencer(int argc, const char **argv, struct replay_opts *opts)
 				"--strategy-option", opts->xopts ? 1 : 0,
 				"-x", opts->record_origin,
 				"--ff", opts->allow_ff,
+				"--rerere-autoupdate", opts->allow_rerere_auto == RERERE_AUTOUPDATE,
+				"--no-rerere-autoupdate", opts->allow_rerere_auto == RERERE_NOAUTOUPDATE,
 				NULL);
 	}
 
diff --git a/t/t3504-cherry-pick-rerere.sh b/t/t3504-cherry-pick-rerere.sh
index af316cb40b7b16c95881eb8483eea4f6191c7cfa..a267b2d144df4a84f18ba4907b317e757ba98f16 100755
--- a/t/t3504-cherry-pick-rerere.sh
+++ b/t/t3504-cherry-pick-rerere.sh
@@ -65,6 +65,19 @@ test_expect_success 'cherry-pick conflict with --no-rerere-autoupdate' '
 	git reset --hard bar-dev
 '
 
+test_expect_success 'cherry-pick --continue rejects --rerere-autoupdate' '
+	test_must_fail git cherry-pick --rerere-autoupdate foo..bar-master &&
+	test_cmp foo-expect foo &&
+	git diff-files --quiet &&
+	test_must_fail git cherry-pick --continue --rerere-autoupdate >actual 2>&1 &&
+	echo "fatal: cherry-pick: --rerere-autoupdate cannot be used with --continue" >expect &&
+	test_i18ncmp expect actual &&
+	test_must_fail git cherry-pick --continue --no-rerere-autoupdate >actual 2>&1 &&
+	echo "fatal: cherry-pick: --no-rerere-autoupdate cannot be used with --continue" >expect &&
+	test_i18ncmp expect actual &&
+	git cherry-pick --abort
+'
+
 test_expect_success 'cherry-pick --rerere-autoupdate more than once' '
 	test_must_fail git cherry-pick --rerere-autoupdate --rerere-autoupdate foo..bar-master &&
 	test_cmp foo-expect foo &&
-- 
2.13.3
Previous: Phillip WoodNext: Junio C Hamano
Message 3 of 12 in “am/cherry-pick/rebase/revert --rerere-autoupdate fixes”
  1. 0/6 am/cherry-pick/rebase/revert --rerere-autoupdate fixesPhillip Wood, Aug 2, 2017
  2. 2/6 rebase: honor --rerere-autoupdatePhillip Wood, Aug 2, 2017
  3. 6/6 cherry-pick/revert: reject --rerere-autoupdate when continuingPhillip Wood, Aug 2, 2017
  4. Junio C HamanoAug 2, 2017
  5. Junio C HamanoAug 2, 2017
  6. Phillip WoodAug 3, 2017
  7. Junio C HamanoAug 3, 2017
  8. Phillip WoodAug 7, 2017
  9. 1/6 am: remember --rerere-autoupdate settingPhillip Wood, Aug 2, 2017
  10. 3/6 rebase -i: honor --rerere-autoupdatePhillip Wood, Aug 2, 2017
  11. 5/6 cherry-pick/revert: remember --rerere-autoupdatePhillip Wood, Aug 2, 2017
  12. 4/6 t3504: use test_commitPhillip Wood, Aug 2, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.