diff options
author | Junio C Hamano <gitster@pobox.com> | 2018-08-20 12:41:33 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2018-08-20 12:41:33 -0700 |
commit | 36fd1e843b83a1ee10178e7da19eee3dee590580 (patch) | |
tree | 1506cc5f569415dae4d436f6f32c34bb604e6b5b | |
parent | 2a2c18f1c3ae3fbade32df11719f24e8d6a6709c (diff) | |
parent | dd2e36ebaccd6dc2ca4d37759248ce9bbdf9113e (diff) |
Merge branch 'pw/rebase-i-squash-number-fix'
When "git rebase -i" is told to squash two or more commits into
one, it labeled the log message for each commit with its number.
It correctly called the first one "1st commit", but the next one
was "commit #1", which was off-by-one. This has been corrected.
* pw/rebase-i-squash-number-fix:
rebase -i: fix numbering in squash message
-rw-r--r-- | sequencer.c | 4 | ||||
-rwxr-xr-x | t/t3418-rebase-continue.sh | 4 |
2 files changed, 5 insertions, 3 deletions
diff --git a/sequencer.c b/sequencer.c index c00eedd856..2db52fe800 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1552,13 +1552,13 @@ static int update_squash_messages(enum todo_command command, unlink(rebase_path_fixup_msg()); strbuf_addf(&buf, "\n%c ", comment_line_char); strbuf_addf(&buf, _("This is the commit message #%d:"), - ++opts->current_fixup_count); + ++opts->current_fixup_count + 1); strbuf_addstr(&buf, "\n\n"); strbuf_addstr(&buf, body); } else if (command == TODO_FIXUP) { strbuf_addf(&buf, "\n%c ", comment_line_char); strbuf_addf(&buf, _("The commit message #%d will be skipped:"), - ++opts->current_fixup_count); + ++opts->current_fixup_count + 1); strbuf_addstr(&buf, "\n\n"); strbuf_add_commented_lines(&buf, body, strlen(body)); } else diff --git a/t/t3418-rebase-continue.sh b/t/t3418-rebase-continue.sh index 65ed7db159..25099d715c 100755 --- a/t/t3418-rebase-continue.sh +++ b/t/t3418-rebase-continue.sh @@ -160,13 +160,15 @@ test_expect_success '--skip after failed fixup cleans commit message' ' : The first squash was skipped, therefore: && git show HEAD >out && test_i18ngrep "# This is a combination of 2 commits" out && + test_i18ngrep "# This is the commit message #2:" out && (test_set_editor "$PWD/copy-editor.sh" && git rebase --skip) && git show HEAD >out && test_i18ngrep ! "# This is a combination" out && : Final squash failed, but there was still a squash && - test_i18ngrep "# This is a combination of 2 commits" .git/copy.txt + test_i18ngrep "# This is a combination of 2 commits" .git/copy.txt && + test_i18ngrep "# This is the commit message #2:" .git/copy.txt ' test_expect_success 'setup rerere database' ' |