зеркало из https://github.com/microsoft/git.git
Merge branch 'mg/sequencer-commit-messages-always-verbatim'
"git cherry-pick" used to clean-up the log message even when it is merely replaying an existing commit. It now replays the message verbatim unless you are editing the message of resulting commits. * mg/sequencer-commit-messages-always-verbatim: sequencer: preserve commit messages
This commit is contained in:
Коммит
795b01422d
|
@ -373,6 +373,7 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
|
|||
{
|
||||
struct argv_array array;
|
||||
int rc;
|
||||
const char *value;
|
||||
|
||||
argv_array_init(&array);
|
||||
argv_array_push(&array, "commit");
|
||||
|
@ -385,6 +386,10 @@ static int run_git_commit(const char *defmsg, struct replay_opts *opts,
|
|||
if (!opts->edit) {
|
||||
argv_array_push(&array, "-F");
|
||||
argv_array_push(&array, defmsg);
|
||||
if (!opts->signoff &&
|
||||
!opts->record_origin &&
|
||||
git_config_get_value("commit.cleanup", &value))
|
||||
argv_array_push(&array, "--cleanup=verbatim");
|
||||
}
|
||||
|
||||
if (allow_empty)
|
||||
|
|
|
@ -36,6 +36,20 @@ mesg_with_cherry_footer="$mesg_with_footer_sob
|
|||
(cherry picked from commit da39a3ee5e6b4b0d3255bfef95601890afd80709)
|
||||
Tested-by: C.U. Thor <cuthor@example.com>"
|
||||
|
||||
mesg_unclean="$mesg_one_line
|
||||
|
||||
|
||||
leading empty lines
|
||||
|
||||
|
||||
consecutive empty lines
|
||||
|
||||
# hash tag comment
|
||||
|
||||
trailing empty lines
|
||||
|
||||
|
||||
"
|
||||
|
||||
test_expect_success setup '
|
||||
git config advice.detachedhead false &&
|
||||
|
@ -53,6 +67,10 @@ test_expect_success setup '
|
|||
test_commit "$mesg_with_footer_sob" foo b mesg-with-footer-sob &&
|
||||
git reset --hard initial &&
|
||||
test_commit "$mesg_with_cherry_footer" foo b mesg-with-cherry-footer &&
|
||||
git reset --hard initial &&
|
||||
test_config commit.cleanup verbatim &&
|
||||
test_commit "$mesg_unclean" foo b mesg-unclean &&
|
||||
test_unconfig commit.cleanup &&
|
||||
pristine_detach initial &&
|
||||
test_commit conflicting unrelated
|
||||
'
|
||||
|
@ -216,4 +234,14 @@ test_expect_success 'cherry-pick -x -s treats "(cherry picked from..." line as p
|
|||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'cherry-pick preserves commit message' '
|
||||
pristine_detach initial &&
|
||||
printf "$mesg_unclean" >expect &&
|
||||
git log -1 --pretty=format:%B mesg-unclean >actual &&
|
||||
test_cmp expect actual &&
|
||||
git cherry-pick mesg-unclean &&
|
||||
git log -1 --pretty=format:%B >actual &&
|
||||
test_cmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
|
Загрузка…
Ссылка в новой задаче