Running "git cherry-pick" as an x-command in the rebase plan loses the original authorship information. To fix this, unset GIT_CHERRY_PICK_HELP for 'exec' commands. Link: https://lore.kernel.org/git/0adb1068-ef10-44ed-ad1d-e0927a09245d@xxxxxxxxx/ Suggested-by: Phillip Wood <phillip.wood123@xxxxxxxxx> Signed-off-by: Vegard Nossum <vegard.nossum@xxxxxxxxxx> --- sequencer.c | 1 + t/t3515-cherry-pick-rebase.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/sequencer.c b/sequencer.c index 91de546b32..f49a871ac0 100644 --- a/sequencer.c +++ b/sequencer.c @@ -3641,6 +3641,7 @@ static int do_exec(struct repository *r, const char *command_line) fprintf(stderr, _("Executing: %s\n"), command_line); cmd.use_shell = 1; strvec_push(&cmd.args, command_line); + strvec_push(&cmd.env, "GIT_CHERRY_PICK_HELP"); status = run_command(&cmd); /* force re-reading of the cache */ diff --git a/t/t3515-cherry-pick-rebase.sh b/t/t3515-cherry-pick-rebase.sh index ffe6f5fe2a..5cb2b96f66 100755 --- a/t/t3515-cherry-pick-rebase.sh +++ b/t/t3515-cherry-pick-rebase.sh @@ -23,7 +23,7 @@ test_expect_success 'cherry-pick preserves authorship information' ' test_cmp expected actual ' -test_expect_failure 'cherry-pick inside rebase preserves authorship information' ' +test_expect_success 'cherry-pick inside rebase preserves authorship information' ' git checkout -B tmp feature && echo "x git cherry-pick -x foo" >rebase-plan && test_must_fail env GIT_SEQUENCE_EDITOR="cp rebase-plan" git rebase -i feature && -- 2.34.1